Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Modular Monolith Nedir? Big Ball of Mud ile Microservices Arasındaki Yol
Modular monolith, tek deployment unit içinde sınırları compiler ve test'le korunan module'lerden oluşan bir uygulamadır: modülerliğin faydasını network'ün bedelini ödemeden verir, bağımsız deploy ve scaling vermez. Shopify vakası, MonolithFirst ve Microservice Premium üzerinden nerede durduğunu, klasörleri module sanmanın ve bugünden HTTP çağrısı eklemenin (ölçümde bin katın üstünde fark) neden tuzak olduğunu Bookstore örneğiyle gösteriyoruz.
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.
.NET'te Modular Monolith Solution Yapısı: Module Projeleri, internal ve Module Registration
Her module için iki project açılır: diğer module'lerin görebildiği küçük bir Contracts ve her şeyin internal olduğu bir Core; Host yalnız AddXModule() ve MapXEndpoints() çağıran composition root'tur. Boş solution'dan çalışan üç module'lü Host'a gidiyor, project reference ve internal'ın sınırı nerede koruyup nerede korumadığını gerçek CS0234/CS0122 hatalarıyla, Shared Kernel'e neyin girip neyin giremeyeceğini somut bir listeyle gösteriyoruz.