Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Data Ownership ve Database per Service: Shared Database'den Neden Kaçınılır?
Shared database, hiçbir contract'ta görünmeyen bir coupling yaratır; her service'in verisi ona private olmalı ve başkaları bu veriye API composition, event'le replike edilen local kopya ya da CQRS read model ile ulaşmalı. SQL Server'da schema seviyesinde yetkiyle sınırı zorlamak, BookRenamed ile version kontrollü kopya, snapshot farkı, reference data ve raporlama için CDC.
Module Boundary'lerini Bulmak: Business Capability, Bounded Context ve Veri Sahipliği
Module sınırı teknik katmana göre değil, business capability'ye ve veri sahipliğine göre çizilir: her bounded context bir module, her tablonun tek bir yazarı olur. Bookstore'da bir EF Core interceptor'ıyla Books tablosuna üç, Orders tablosuna iki module'ün yazdığını ölçüyor, Order'ın içindeki Book'un neden ayrı bir snapshot modeli olması gerektiğini ve yanlış sınırın belirtilerini gösteriyoruz.