{"id":38929,"date":"2026-02-10T20:30:32","date_gmt":"2026-02-10T17:30:32","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/"},"modified":"2026-02-10T20:30:32","modified_gmt":"2026-02-10T17:30:32","slug":"olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/","title":{"rendered":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?"},"content":{"rendered":"<h2>Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?<\/h2>\n<p>Modern yaz\u0131l\u0131m d\u00fcnyas\u0131nda, sistemlerin kesintisiz \u00e7al\u0131\u015fmas\u0131, hatalara kar\u015f\u0131 diren\u00e7li olmas\u0131 ve h\u0131zla de\u011fi\u015fen i\u015f ihtiya\u00e7lar\u0131na uyum sa\u011flamas\u0131 kritik \u00f6neme sahiptir. Bu ba\u011flamda, Event Sourcing (Olay Kaynaklama) paradigmas\u0131, veri y\u00f6netimini k\u00f6kten de\u011fi\u015ftirerek, \u00f6zellikle dayan\u0131kl\u0131 ve denetlenebilir teslimat sistemleri in\u015fa etme konusunda bize paha bi\u00e7ilmez dersler sunmu\u015ftur. Bu makalede, Event Sourcing&#8217;in temel prensiplerini, dayan\u0131kl\u0131l\u0131k \u00fczerindeki etkilerini, mikroservis mimarileriyle entegrasyonunu ve bu yakla\u015f\u0131m\u0131n bize \u00f6\u011frettiklerini detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>1. Olay Kaynaklama Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>Geleneksel veri depolama yakla\u015f\u0131mlar\u0131 genellikle bir sistemin mevcut durumunu kaydetmeye odaklan\u0131rken, Event Sourcing, bir varl\u0131\u011f\u0131n (aggregate) durumundaki her de\u011fi\u015fikli\u011fi bir olay (event) olarak kaydetme prensibine dayan\u0131r. Bu, sistemin ge\u00e7mi\u015fine dair eksiksiz ve de\u011fi\u015fmez bir kay\u0131t tutulmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Geleneksel Veri Saklama Yakla\u015f\u0131m\u0131<\/h4>\n<p>\u00c7o\u011fu uygulama, bir veritaban\u0131nda varl\u0131klar\u0131n anl\u0131k durumunu (current state) saklar. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n bakiyesi de\u011fi\u015fti\u011finde, veritaban\u0131ndaki bakiye alan\u0131 g\u00fcncellenir. Bu yakla\u015f\u0131m basit ve h\u0131zl\u0131d\u0131r, ancak ge\u00e7mi\u015fte ne oldu\u011fu, bir duruma nas\u0131l ula\u015f\u0131ld\u0131\u011f\u0131 gibi de\u011ferli bilgileri kaybederiz. Bir hatan\u0131n kayna\u011f\u0131n\u0131 bulmak veya ge\u00e7mi\u015f bir durumu yeniden olu\u015fturmak zorla\u015f\u0131r.<\/p>\n<h4>Olay Kaynaklaman\u0131n Temelleri<\/h4>\n<p>Olay Kaynaklama&#8217;da, bir varl\u0131\u011f\u0131n durumu do\u011frudan g\u00fcncellenmez. Bunun yerine, varl\u0131k \u00fczerinde ger\u00e7ekle\u015fen her eylem bir &#8220;olay&#8221; olarak kaydedilir ve bu olaylar kronolojik s\u0131rayla bir olay deposuna (event store) eklenir. Bir varl\u0131\u011f\u0131n mevcut durumu, bu olaylar\u0131n ba\u015ftan sona tekrar oynat\u0131lmas\u0131yla (replaying) elde edilir. \u00d6rne\u011fin, bir banka hesab\u0131nda &#8220;Hesap A\u00e7\u0131ld\u0131&#8221;, &#8220;Para Yat\u0131r\u0131ld\u0131&#8221;, &#8220;Para \u00c7ekildi&#8221; gibi olaylar kaydedilir ve hesab\u0131n bakiyesi bu olaylar\u0131n toplam\u0131ndan hesaplan\u0131r.<\/p>\n<pre><code class=\"language-csharp\">\npublic class HesapA\u00e7\u0131ld\u0131Event : IEvent\n{\n    public Guid HesapId { get; set; }\n    public string HesapSahibi { get; set; }\n    public decimal Ba\u015flang\u0131\u00e7Bakiyesi { get; set; }\n    public DateTime Olu\u015fturulmaTarihi { get; set; }\n}\n\npublic class ParaYat\u0131r\u0131ld\u0131Event : IEvent\n{\n    public Guid HesapId { get; set; }\n    public decimal Miktar { get; set; }\n    public DateTime \u0130\u015flemTarihi { get; set; }\n}\n<\/pre>\n<p><\/code><\/p>\n<h4>De\u011fi\u015fmezlik ve G\u00fcvenilirlik<\/h4>\n<p>Olaylar bir kez kaydedildikten sonra de\u011fi\u015ftirilemez veya silinemez (immutable). Bu de\u011fi\u015fmezlik, sistemin ge\u00e7mi\u015fine dair tam bir denetim izi (audit trail) sa\u011flar ve verinin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc garanti eder. Bu, sistemin g\u00fcvenilirli\u011fini art\u0131r\u0131r ve hatalar\u0131n tespiti ile d\u00fczeltilmesini kolayla\u015ft\u0131r\u0131r. Olay deposu, sistemin tek do\u011fru kayna\u011f\u0131 (single source of truth) haline gelir.<\/p>\n<h3>2. Dayan\u0131kl\u0131l\u0131\u011f\u0131n Temel Ta\u015flar\u0131 Olarak Olaylar<\/h3>\n<p>Event Sourcing, sistemlerin dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 art\u0131rmak i\u00e7in \u00e7e\u015fitli mekanizmalar sunar. Ge\u00e7mi\u015fin tam kayd\u0131, hata kurtarma yetenekleri ve zaman yolculu\u011fu, bu paradigman\u0131n sundu\u011fu en g\u00fc\u00e7l\u00fc \u00f6zelliklerdendir.<\/p>\n<h4>Ge\u00e7mi\u015fin Tam Kayd\u0131<\/h4>\n<p>Her olay\u0131n kaydedilmesi, sistemin zaman i\u00e7indeki evriminin eksiksiz bir hikayesini olu\u015fturur. Bu, sadece mevcut durumu de\u011fil, ayn\u0131 zamanda bu duruma nas\u0131l ula\u015f\u0131ld\u0131\u011f\u0131n\u0131 da anlamam\u0131z\u0131 sa\u011flar. Bir hata meydana geldi\u011finde, olay\u0131n tam olarak ne zaman ve hangi ko\u015fullar alt\u0131nda ger\u00e7ekle\u015fti\u011fini belirlemek \u00e7ok daha kolayd\u0131r. Bu kay\u0131t, i\u015f s\u00fcre\u00e7lerinin analizi ve optimizasyonu i\u00e7in de de\u011ferli bir kaynakt\u0131r.<\/p>\n<h4>Hata Kurtarma ve Yeniden Oynatma (Replay) Yetene\u011fi<\/h4>\n<p>Event Sourcing'in en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, sistemin durumunu olaylardan yeniden olu\u015fturabilme yetene\u011fidir. E\u011fer bir veritaban\u0131 bozulur veya bir uygulama hatas\u0131 nedeniyle yanl\u0131\u015f bir durum olu\u015fursa, olay deposundaki olaylar\u0131 yeniden oynatarak sistemi do\u011fru bir ge\u00e7mi\u015f noktas\u0131na geri getirebiliriz. Bu, felaket kurtarma senaryolar\u0131nda hayati bir rol oynar ve sistemin kesintisiz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>\u00d6rne\u011fin, bir okuma modelinde (read model) veri tutars\u0131zl\u0131\u011f\u0131 olu\u015ftu\u011funda, bu okuma modelini s\u0131f\u0131rlay\u0131p olay deposundaki t\u00fcm olaylar\u0131 yeniden i\u015fleyerek do\u011fru durumu yeniden in\u015fa edebiliriz. Bu, sistemin kendini onarma yetene\u011fini art\u0131r\u0131r.<\/p>\n<h4>Zaman Yolculu\u011fu ve Hata Ay\u0131klama<\/h4>\n<p>Olaylar\u0131n kronolojik s\u0131ras\u0131, bir sistemin herhangi bir ge\u00e7mi\u015f an\u0131ndaki durumunu \"g\u00f6rme\" imkan\u0131 sunar. Bu \"zaman yolculu\u011fu\" yetene\u011fi, \u00f6zellikle karma\u015f\u0131k hatalar\u0131 ay\u0131klarken veya bir i\u015f s\u00fcrecinin belirli bir a\u015famas\u0131ndaki durumu anlamak i\u00e7in inan\u0131lmaz derecede faydal\u0131d\u0131r. Geli\u015ftiriciler, bir hatan\u0131n tam olarak hangi olaydan sonra ortaya \u00e7\u0131kt\u0131\u011f\u0131n\u0131 tespit edebilir ve bu olay\u0131 izole ederek sorunu daha h\u0131zl\u0131 \u00e7\u00f6zebilirler. Ayr\u0131ca, yeni \u00f6zellikler geli\u015ftirilirken mevcut olay ak\u0131\u015flar\u0131 \u00fczerinden test senaryolar\u0131 olu\u015fturmak da kolayla\u015f\u0131r.<\/p>\n<h3>3. Mikroservis Mimarilerinde Olay Kaynaklaman\u0131n Rol\u00fc<\/h3>\n<p>Mikroservis mimarileri, ba\u011f\u0131ms\u0131z da\u011f\u0131t\u0131labilir servisler arac\u0131l\u0131\u011f\u0131yla esneklik ve \u00f6l\u00e7eklenebilirlik vaat eder. Event Sourcing, bu mimarilerde servisler aras\u0131 ileti\u015fimi ve veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in g\u00fc\u00e7l\u00fc bir mekanizma sunar.<\/p>\n<h4>Olay Odakl\u0131 \u0130leti\u015fim<\/h4>\n<p>Mikroservisler genellikle birbirleriyle olaylar arac\u0131l\u0131\u011f\u0131yla ileti\u015fim kurar. Bir servis bir olay\u0131 yay\u0131nlad\u0131\u011f\u0131nda (publish), di\u011fer ilgili servisler bu olay\u0131 dinleyebilir (subscribe) ve kendi i\u00e7 durumlar\u0131n\u0131 g\u00fcncelleyebilirler. Bu, servisler aras\u0131nda gev\u015fek ba\u011fl\u0131l\u0131k (loose coupling) sa\u011flar ve her servisin kendi sorumluluk alan\u0131na odaklanmas\u0131na olanak tan\u0131r. \u00d6rne\u011fin, bir \"Sipari\u015f Olu\u015fturuldu\" olay\u0131, stok servisini, \u00f6deme servisini ve bildirim servisini tetikleyebilir.<\/p>\n<h4>Tutarl\u0131l\u0131k Modelleri ve Saga Desenleri<\/h4>\n<p>Da\u011f\u0131t\u0131k sistemlerde veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak zorludur. Event Sourcing ve olay odakl\u0131 ileti\u015fim, nihai tutarl\u0131l\u0131k (eventual consistency) modellerini destekler. Karma\u015f\u0131k i\u015f s\u00fcre\u00e7leri (\u00f6rne\u011fin, birden fazla servisi i\u00e7eren bir sipari\u015f s\u00fcreci) i\u00e7in Saga deseni kullan\u0131labilir. Bir Saga, bir dizi yerel i\u015flemi ve olaylar\u0131 koordine ederek da\u011f\u0131t\u0131k bir i\u015flemde tutarl\u0131l\u0131\u011f\u0131 sa\u011flar. Bir i\u015flem ba\u015far\u0131s\u0131z olursa, Saga telafi edici olaylar (compensating events) yay\u0131nlayarak sistemi \u00f6nceki tutarl\u0131 bir duruma geri d\u00f6nd\u00fcrebilir, bu da sistemin dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h4>Ba\u011f\u0131ms\u0131z Da\u011f\u0131t\u0131m ve \u00d6l\u00e7eklenebilirlik<\/h4>\n<p>Her mikroservisin kendi olay deposuna sahip olmas\u0131 veya merkezi bir olay deposunu kullanmas\u0131, servislerin ba\u011f\u0131ms\u0131z olarak geli\u015ftirilmesine, da\u011f\u0131t\u0131lmas\u0131na ve \u00f6l\u00e7eklenmesine olanak tan\u0131r. Bir servisin veritaban\u0131 \u015femas\u0131 veya i\u00e7 i\u015fleyi\u015fi de\u011fi\u015fti\u011finde, bu de\u011fi\u015fiklik di\u011fer servisleri do\u011frudan etkilemez, \u00e7\u00fcnk\u00fc ileti\u015fim olaylar \u00fczerinden ger\u00e7ekle\u015fir. Bu, s\u00fcrekli teslimat (continuous delivery) s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r ve sistemin genel esnekli\u011fini art\u0131r\u0131r.<\/p>\n<h3>4. CQRS (Command Query Responsibility Segregation) ile G\u00fc\u00e7l\u00fc Bir \u0130kili<\/h3>\n<p>Event Sourcing'in potansiyelini tam olarak ortaya \u00e7\u0131karan bir di\u011fer \u00f6nemli desen, CQRS'dir. Bu iki yakla\u015f\u0131m birlikte kullan\u0131ld\u0131\u011f\u0131nda, hem performans hem de esneklik a\u00e7\u0131s\u0131ndan \u00f6nemli avantajlar sa\u011flar.<\/p>\n<h4>CQRS Nedir?<\/h4>\n<p>CQRS, bir uygulaman\u0131n okuma (query) ve yazma (command) i\u015flemlerini ay\u0131rma prensibine dayan\u0131r. Geleneksel olarak, ayn\u0131 veritaban\u0131 \u015femas\u0131 hem veri yazmak hem de okumak i\u00e7in kullan\u0131l\u0131r. CQRS'de ise, yazma i\u015flemleri i\u00e7in ayr\u0131 bir model (komut modeli) ve okuma i\u015flemleri i\u00e7in ayr\u0131 bir model (sorgu modeli) bulunur. Bu ayr\u0131m, her iki i\u015flemin de kendi ihtiya\u00e7lar\u0131na g\u00f6re optimize edilmesine olanak tan\u0131r.<\/p>\n<h4>Olay Kaynaklama ve CQRS'in Birlikteli\u011fi<\/h4>\n<p>Event Sourcing, do\u011fal olarak bir yazma modeli (olay deposu) sa\u011flar. CQRS ile birle\u015fti\u011finde, komutlar olaylar olu\u015fturur ve bu olaylar olay deposuna kaydedilir. Daha sonra, bu olaylar asenkron olarak farkl\u0131 okuma modellerini (\u00f6rne\u011fin, NoSQL veritabanlar\u0131, arama motorlar\u0131) g\u00fcncelleyebilir. Bu, okuma ve yazma i\u015flemlerinin birbirinden tamamen ba\u011f\u0131ms\u0131z olarak \u00f6l\u00e7eklenmesine ve optimize edilmesine imkan tan\u0131r.<\/p>\n<p>Bu birliktelik, \u00f6zellikle karma\u015f\u0131k sorgu ihtiya\u00e7lar\u0131 olan sistemlerde b\u00fcy\u00fck fayda sa\u011flar. Okuma modelleri, belirli i\u015f ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilebilir ve y\u00fcksek performansl\u0131 sorgular i\u00e7in optimize edilebilir. \u00d6rne\u011fin, bir e-ticaret uygulamas\u0131nda \u00fcr\u00fcn detaylar\u0131 i\u00e7in bir okuma modeli, arama i\u00e7in ba\u015fka bir okuma modeli olabilir.<\/p>\n<h4>Performans ve Esneklik Avantajlar\u0131<\/h4>\n<p>Event Sourcing ve CQRS kombinasyonu, sistemlere \u00f6nemli performans ve esneklik avantajlar\u0131 sunar:<\/p>\n<ul>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Okuma ve yazma y\u00fckleri birbirinden ayr\u0131ld\u0131\u011f\u0131 i\u00e7in, her iki taraf da ba\u011f\u0131ms\u0131z olarak \u00f6l\u00e7eklenebilir. Yo\u011fun okuma trafi\u011fi olan bir sistemde, okuma modelleri kolayca \u00e7o\u011falt\u0131labilir.<\/li>\n<li><strong>Performans:<\/strong> Okuma modelleri, karma\u015f\u0131k sorgular\u0131 h\u0131zl\u0131 bir \u015fekilde yan\u0131tlamak \u00fczere tasarlanabilir. Yazma taraf\u0131 ise sadece olaylar\u0131 kaydetmeye odakland\u0131\u011f\u0131 i\u00e7in h\u0131zl\u0131d\u0131r.<\/li>\n<li><strong>Esneklik:<\/strong> Yeni bir i\u015f ihtiyac\u0131 ortaya \u00e7\u0131kt\u0131\u011f\u0131nda, mevcut olay ak\u0131\u015flar\u0131ndan yeni bir okuma modeli olu\u015fturmak veya mevcut bir okuma modelini de\u011fi\u015ftirmek m\u00fcmk\u00fcnd\u00fcr, bu da sistemin evrimini kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<h3>5. Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130\u00e7in Pratik Uygulamalar<\/h3>\n<p>Event Sourcing'in sa\u011flad\u0131\u011f\u0131 faydalar, dayan\u0131kl\u0131 teslimat sistemleri in\u015fa etmek i\u00e7in somut uygulamalara d\u00f6n\u00fc\u015febilir.<\/p>\n<h4>Hata Tolerans\u0131 ve Geriye D\u00f6n\u00fck Uyumluluk<\/h4>\n<p>Olay Kaynaklama, sistemlerin hatalara kar\u015f\u0131 daha toleransl\u0131 olmas\u0131n\u0131 sa\u011flar. Bir uygulama hatas\u0131 olu\u015ftu\u011funda, olay deposu hala ge\u00e7erli ve do\u011fru veri kayna\u011f\u0131d\u0131r. Hatal\u0131 durumu d\u00fczeltmek i\u00e7in uygulamay\u0131 g\u00fcncelleyebilir ve ard\u0131ndan olaylar\u0131 yeniden oynatarak sistemi do\u011fru duruma getirebiliriz. Bu, \"geri al\" (undo) i\u015flevselli\u011fi i\u00e7in de temel olu\u015fturur. Ayr\u0131ca, eski olaylar\u0131n yeni uygulama versiyonlar\u0131 taraf\u0131ndan i\u015flenebilmesi i\u00e7in olay versiyonlama stratejileri geli\u015ftirilerek geriye d\u00f6n\u00fck uyumluluk sa\u011flan\u0131r.<\/p>\n<h4>Denetim \u0130zleri ve Uyumluluk<\/h4>\n<p>De\u011fi\u015fmez olay ak\u0131\u015f\u0131, sistemdeki her de\u011fi\u015fikli\u011fin tam bir kayd\u0131n\u0131 tutar. Bu, denetim (audit) ve uyumluluk (compliance) gereksinimleri olan sekt\u00f6rler i\u00e7in paha bi\u00e7ilmezdir. Kimin, ne zaman, ne yapt\u0131\u011f\u0131n\u0131 kesin olarak belirlemek m\u00fcmk\u00fcnd\u00fcr. Bu, yasal d\u00fczenlemelere uyumu kolayla\u015ft\u0131r\u0131r ve olas\u0131 anla\u015fmazl\u0131klarda kan\u0131t sa\u011flar.<\/p>\n<h4>Sistem Evrimi ve Versiyonlama<\/h4>\n<p>\u0130\u015f gereksinimleri zamanla de\u011fi\u015fir ve sistemlerin bu de\u011fi\u015fikliklere adapte olmas\u0131 gerekir. Event Sourcing, sistemin evrimini kolayla\u015ft\u0131r\u0131r. Yeni bir \u00f6zellik eklendi\u011finde veya mevcut bir i\u015f kural\u0131 de\u011fi\u015fti\u011finde, mevcut olay ak\u0131\u015flar\u0131n\u0131 etkilemeden yeni olay tipleri tan\u0131mlanabilir veya mevcut olaylar\u0131n yeni versiyonlar\u0131 i\u015flenebilir. Bu, sistemin gelece\u011fe d\u00f6n\u00fck olmas\u0131n\u0131 sa\u011flar ve b\u00fcy\u00fck \u00e7apl\u0131 yeniden yazma (rewrite) ihtiya\u00e7lar\u0131n\u0131 azalt\u0131r.<\/p>\n<h3>6. Zorluklar ve Dikkat Edilmesi Gerekenler<\/h3>\n<p>Event Sourcing bir\u00e7ok avantaj sunsa da, beraberinde baz\u0131 zorluklar\u0131 da getirir ve her proje i\u00e7in uygun olmayabilir.<\/p>\n<h4>Karma\u015f\u0131kl\u0131k Y\u00f6netimi<\/h4>\n<p>Event Sourcing, geleneksel CRUD (Create, Read, Update, Delete) tabanl\u0131 yakla\u015f\u0131mlara g\u00f6re daha karma\u015f\u0131kt\u0131r. Geli\u015ftiricilerin olay odakl\u0131 d\u00fc\u015f\u00fcnme bi\u00e7imini benimsemesi, olay tan\u0131mlar\u0131n\u0131 do\u011fru yapmas\u0131, olay versiyonlamas\u0131n\u0131 y\u00f6netmesi ve nihai tutarl\u0131l\u0131kla ba\u015fa \u00e7\u0131kmas\u0131 gerekir. Bu, ba\u015flang\u0131\u00e7ta daha y\u00fcksek bir \u00f6\u011frenme e\u011frisi ve geli\u015ftirme maliyeti anlam\u0131na gelebilir.<\/p>\n<h4>Veri B\u00fcy\u00fckl\u00fc\u011f\u00fc ve Depolama Maliyeti<\/h4>\n<p>Her de\u011fi\u015fikli\u011fin bir olay olarak kaydedilmesi, olay deposunda zamanla b\u00fcy\u00fck miktarda veri birikmesine neden olabilir. Bu, depolama maliyetlerini ve olay deposunun performans\u0131n\u0131 etkileyebilir. Bu durumu y\u00f6netmek i\u00e7in snapshotting (anl\u0131k g\u00f6r\u00fcnt\u00fc alma) gibi stratejiler kullan\u0131l\u0131r. Belirli aral\u0131klarla varl\u0131\u011f\u0131n mevcut durumu bir anl\u0131k g\u00f6r\u00fcnt\u00fc olarak kaydedilir ve sonraki olaylar bu anl\u0131k g\u00f6r\u00fcnt\u00fcden ba\u015flanarak uygulan\u0131r.<\/p>\n<h4>Olay Versiyonlama Stratejileri<\/h4>\n<p>Sistem evrildik\u00e7e, mevcut olaylar\u0131n yap\u0131s\u0131 de\u011fi\u015febilir. Eski olaylar\u0131 yeni uygulama versiyonlar\u0131n\u0131n anlayabilece\u011fi bir \u015fekilde i\u015flemek i\u00e7in olay versiyonlama stratejileri (\u00f6rne\u011fin, olay d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fcler - event upcasters) geli\u015ftirmek gerekir. Bu, dikkatli planlama ve uygulama gerektiren karma\u015f\u0131k bir konudur. Yanl\u0131\u015f versiyonlama stratejileri, geriye d\u00f6n\u00fck uyumluluk sorunlar\u0131na ve veri bozulmalar\u0131na yol a\u00e7abilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Event Sourcing, sadece bir veri depolama deseni olmaktan \u00f6te, sistemlerimizi tasarlama ve in\u015fa etme \u015feklimizi d\u00f6n\u00fc\u015ft\u00fcren g\u00fc\u00e7l\u00fc bir paradigmad\u0131r. Bize, ge\u00e7mi\u015fin tam kayd\u0131n\u0131 tutman\u0131n, hatalardan kurtulman\u0131n, sistemin evrimini y\u00f6netmenin ve \u00f6zellikle da\u011f\u0131t\u0131k mikroservis ortamlar\u0131nda dayan\u0131kl\u0131l\u0131\u011f\u0131 art\u0131rman\u0131n yollar\u0131n\u0131 \u00f6\u011fretmi\u015ftir. CQRS ile birle\u015fti\u011finde, Event Sourcing, performansl\u0131, esnek ve denetlenebilir teslimat sistemleri i\u00e7in sa\u011flam bir temel sunar. Ancak, beraberinde getirdi\u011fi karma\u015f\u0131kl\u0131k ve y\u00f6netim zorluklar\u0131n\u0131n fark\u0131nda olmak ve projenin ihtiya\u00e7lar\u0131na uygun olup olmad\u0131\u011f\u0131n\u0131 dikkatlice de\u011ferlendirmek \u00f6nemlidir. Do\u011fru uyguland\u0131\u011f\u0131nda, Event Sourcing, modern yaz\u0131l\u0131m mimarilerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 bir\u00e7ok zorlu\u011fa kar\u015f\u0131 g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunarak, ger\u00e7ekten dayan\u0131kl\u0131 sistemler in\u015fa etmemize olanak tan\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>Olay Kaynaklama her proje i\u00e7in uygun mudur?<\/h4>\n<p>Hay\u0131r, Event Sourcing her proje i\u00e7in uygun de\u011fildir. \u00d6zellikle karma\u015f\u0131k i\u015f s\u00fcre\u00e7leri, denetim izi gereksinimleri, ge\u00e7mi\u015f durumlar\u0131 sorgulama ihtiyac\u0131 ve y\u00fcksek d\u00fczeyde dayan\u0131kl\u0131l\u0131k aranan sistemler i\u00e7in \u00e7ok faydal\u0131d\u0131r. Basit CRUD uygulamalar\u0131 i\u00e7in gereksiz yere karma\u015f\u0131kl\u0131k katabilir.<\/p>\n<h4>Geleneksel veritabanlar\u0131 ile birlikte kullan\u0131labilir mi?<\/h4>\n<p>Evet, Event Sourcing genellikle geleneksel ili\u015fkisel veya NoSQL veritabanlar\u0131 ile birlikte kullan\u0131l\u0131r. Olay deposu olarak bir veritaban\u0131 kullan\u0131labilir ve okuma modelleri i\u00e7in farkl\u0131 veritabanlar\u0131 (\u00f6rne\u011fin, PostgreSQL, MongoDB, Elasticsearch) tercih edilebilir.<\/p>\n<h4>Olay Kaynaklama performans\u0131 nas\u0131l etkiler?<\/h4>\n<p>Yazma taraf\u0131nda, sadece olaylar\u0131 eklemek genellikle h\u0131zl\u0131d\u0131r. Okuma taraf\u0131nda ise, CQRS ile ayr\u0131lm\u0131\u015f okuma modelleri sayesinde sorgular y\u00fcksek performansla \u00e7al\u0131\u015fabilir. Ancak, bir varl\u0131\u011f\u0131n mevcut durumunu olaylardan yeniden olu\u015fturmak bazen maliyetli olabilir, bu nedenle snapshotting gibi optimizasyon teknikleri kullan\u0131l\u0131r.<\/p>\n<h4>Olaylar\u0131n versiyonlamas\u0131 neden \u00f6nemlidir?<\/h4>\n<p>Sistem evrildik\u00e7e, olaylar\u0131n yap\u0131s\u0131 de\u011fi\u015febilir (\u00f6rne\u011fin, yeni bir alan eklenmesi). Eski olaylar\u0131n yeni uygulama versiyonlar\u0131 taraf\u0131ndan do\u011fru bir \u015fekilde i\u015flenebilmesi i\u00e7in versiyonlama stratejileri kritik \u00f6neme sahiptir. Bu, geriye d\u00f6n\u00fck uyumlulu\u011fu korur ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar.<\/p>\n","protected":false},"excerpt":{"rendered":"Geleneksel veri depolama yakla\u015f\u0131mlar\u0131 genellikle bir sistemin mevcut durumunu kaydetmeye odaklan\u0131rken, Event Sourcing, bir varl\u0131\u011f\u0131n (aggregate) durumu&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38929","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?\" \/>\n<meta property=\"og:description\" content=\"Geleneksel veri depolama yakla\u015f\u0131mlar\u0131 genellikle bir sistemin mevcut durumunu kaydetmeye odaklan\u0131rken, Event Sourcing, bir varl\u0131\u011f\u0131n (aggregate) durumu...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-10T17:30:32+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?\",\"datePublished\":\"2026-02-10T17:30:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\"},\"wordCount\":2359,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\",\"name\":\"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-10T17:30:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/","og_locale":"tr_TR","og_type":"article","og_title":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?","og_description":"Geleneksel veri depolama yakla\u015f\u0131mlar\u0131 genellikle bir sistemin mevcut durumunu kaydetmeye odaklan\u0131rken, Event Sourcing, bir varl\u0131\u011f\u0131n (aggregate) durumu...","og_url":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-10T17:30:32+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?","datePublished":"2026-02-10T17:30:32+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/"},"wordCount":2359,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/","url":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/","name":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-10T17:30:32+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/olay-kaynaklama-event-sourcing-bize-dayanikli-teslimat-sistemleri-insasi-hakkinda-neler-ogretti\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Olay Kaynaklama (Event Sourcing) Bize Dayan\u0131kl\u0131 Teslimat Sistemleri \u0130n\u015fas\u0131 Hakk\u0131nda Neler \u00d6\u011fretti?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38929"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38929\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}