Modüler Monolit mi Mikroservis mi: 2026’da Hangisi Doğru Seçim?
Doğru cevap çoğu ekip için modüler monolit ile başlamaktır: tek bir dağıtım birimi içinde net modül sınırları kurarsınız, operasyonel karmaşıklığı taşımadan iyi mimari disiplin kazanırsınız. Mikroservise yalnızca somut bir ölçeklenme, takım bağımsızlığı veya teknoloji çeşitliliği baskısı doğduğunda geçersiniz. 2026 için ThoughtWorks Technology Radar, “mikroservis varsayılan değil, gerekçelendirilmesi gereken bir yatırımdır” çerçevesini koruyor. Amazon Prime Video ekibinin 2023’te mikroservislerden monolite dönüp izleme maliyetini yaklaşık %90 düşürdüğü vaka, bu dengeyi kamuoyuna taşıyan dönüm noktasıydı.
Karar, “modern olan” ile “popüler olan” arasında değil; ekibinizin büyüklüğü, dağıtım sıklığı, ölçek profili ve operasyonel olgunluğu arasında verilir. Bu rehber, iki mimariyi sayısal olarak karşılaştırır, geçiş eşiklerini netleştirir ve yanlış seçimin maliyetini gösterir.

Modüler Monolit Nedir, Klasik Monolitten Farkı Nerede?
Modüler monolit, tek bir çalıştırılabilir uygulama olarak dağıtılan ancak içeride katı modül sınırlarıyla bölünmüş bir mimaridir. Büyük topak (big ball of mud) monolitten farkı, modüller arası iletişimin yalnızca açık arayüzler üzerinden gerçekleşmesi ve her modülün kendi veri sahipliğine saygı göstermesidir. Tek süreç içinde çalışır, bu yüzden ağ gecikmesi, dağıtık işlem (distributed transaction) ve servis keşfi gibi sorunlar oluşmaz.
- Modül sınırları: Sipariş, ödeme, envanter gibi alanlar ayrı paketlerde; çağrı yalnızca arayüz katmanından geçer.
- Veri izolasyonu: Aynı veritabanı içinde şema ya da tablo öneki ile mantıksal ayrım sağlanır; doğrudan yabancı modül tablosuna SQL yazılmaz.
- Tek dağıtım: Tüm sistem tek artefakt olarak çıkar; CI/CD basit kalır, sürüm uyumsuzluğu riski sıfıra yakındır.
- Geleceğe hazırlık: Net sınırlar, ileride bir modülü servise ayırmayı mekanik bir işe indirger.
Shopify’ın Ruby tabanlı modüler monoliti (Componentization projesi) ve Spring Modulith çerçevesi, bu yaklaşımın üretim ölçeğinde çalıştığını kanıtlar. Spring Modulith, modül sınırlarını derleme zamanında test eden ArchUnit benzeri doğrulamalar sunar.
Mikroservis Mimarisi: Vaatler ve Gerçek Maliyetler
Mikroservis, her biri kendi süreci, veritabanı ve dağıtım hattı olan küçük, bağımsız servislerden oluşur. Bağımsız ölçeklenme, takımların paralel çalışması ve teknoloji çeşitliliği gibi avantajlar sunar; karşılığında ağ çağrısı, dağıtık gözlemlenebilirlik, eventual consistency ve servisler arası sözleşme yönetimi gibi maliyetler getirir. Bu maliyetler tek bir kalemde toplanmaz; servis keşfi, devre kesici, dağıtık izleme, sözleşme testi ve service mesh gibi pek çok ek bileşeni zorunlu kılar. Her yeni servis, sistem genelinde olası başarısızlık noktalarını artırır ve “tek bir özelliğin uçtan uca testi” giderek pahalı bir koordinasyon işine dönüşür.
CNCF 2024 yıllık anketine göre üretimde Kubernetes kullanımı %66 seviyesine ulaştı, ancak aynı ekosistemde ekiplerin önemli bölümü operasyonel karmaşıklığı en büyük zorluk olarak işaretliyor. Bir izleme zincirinde tek bir kullanıcı isteği 10-20 servise yayıldığında, gecikme bütçesi ve hata ayıklama yüzeyi katlanarak büyür.
| Boyut | Modüler Monolit | Mikroservis | Etkilenen Metrik |
|---|---|---|---|
| Dağıtım birimi | 1 artefakt | 10-100+ servis | CI/CD karmaşıklığı |
| İletişim | Süreç içi çağrı (~ns) | Ağ çağrısı (~1-50 ms) | P99 gecikme |
| Veri tutarlılığı | ACID işlem | Eventual / saga | Hata oranı |
| Takım bağımsızlığı | Orta | Yüksek | Dağıtım sıklığı |
| Operasyonel yük | Düşük | Yüksek (mesh, izleme) | Bulut maliyeti |
| Hata izolasyonu | Süreç düzeyi | Servis düzeyi | Erişilebilirlik |

Karar Matrisi: Hangi Sinyal Hangi Mimariyi İşaret Eder?
Seçimi duygusal değil, sinyal tabanlı yapmak gerekir. Aşağıdaki eşikler, sahadaki çoğu ekip için pratik bir pusula sağlar. Tek bir sinyal yeterli değildir; üç veya daha fazla mikroservis sinyali bir arada görüldüğünde geçiş gerekçelenir. Yaygın bir yanılgı, “büyük şirketler mikroservis kullanıyor, biz de kullanmalıyız” cargo-cult yaklaşımıdır. Oysa Netflix veya Uber ölçeğindeki organizasyon yapısı, on binlerce isteğin saniyede işlendiği yük ve yüzlerce takımın paralel çalışma ihtiyacı, çoğu ekibin gerçekliğiyle örtüşmez. Mimari, başkasının değil kendi sinyallerinize göre seçilir.
| Sinyal | Modüler Monolit Eşiği | Mikroservis Eşiği | Ölçüm Kaynağı |
|---|---|---|---|
| Ekip büyüklüğü | 1-25 geliştirici | 40+ geliştirici, 5+ takım | Org şeması |
| Dağıtım sıklığı | Günde 1-5 | Günde 50+ bağımsız | DORA metriği |
| Ölçek farkı | Modüller dengeli | Tek modül 10x trafik | APM verisi |
| Teknoloji ihtiyacı | Tek stack yeterli | Polyglot zorunluluk | Mimari karar |
| Hata yayılımı | Kabul edilebilir | İzolasyon kritik | SLO ihlalleri |
| Operasyon olgunluğu | Temel CI/CD | Platform takımı var | Yetkinlik denetimi |
- Conway Yasası kontrolü: Mimari, organizasyon iletişim yapınızı yansıtır. 4 takımınız varsa 40 servise bölmek yapay sınırlar yaratır.
- Ölçek asimetrisi: Yalnızca bir modül diğerlerinden 10 kat fazla kaynak yiyorsa, o modülü ayrı servise çıkarmak rasyoneldir.
- Dağıtım çakışması: Takımlar birbirinin sürümünü bekliyorsa bağımsız dağıtım ihtiyacı doğmuştur.
Geçiş Stratejisi: Strangler Fig ve Aşamalı Ayrıştırma
Modüler monolitten mikroservise geçiş tek seferde değil, Strangler Fig deseniyle kademeli yapılır. Önce en yüksek değer veya en yüksek ölçek baskısı olan modül belirlenir, net bir API sözleşmesiyle dışarı taşınır, trafik kademeli yönlendirilir ve eski kod yolu söndürülür. Modüler monolitte sınırlar zaten net olduğu için bu adım mekanik kalır; büyük topak monolitte aynı işlem aylar sürer.
İç linkler bu noktada referans verir: Strangler Fig deseniyle üretimde geçiş ve monolitik sistemi bölme stratejisi bu süreci derinleştirir. Veri katmanı taşınırken sağlam API sözleşmeleri kurmak şarttır.
- Adım 1: Aday modülün dış bağımlılıklarını arayüze indir, doğrudan tablo erişimini kes.
- Adım 2: Modülü ayrı süreç olarak çalıştır, çağrıları HTTP/gRPC’ye çevir, gecikme bütçesini ölç.
- Adım 3: Veriyi kendi deposuna taşı; geçiş sırasında çift yazma (dual write) ya da CDC kullan.
- Adım 4: Trafiği yüzde olarak kaydır, hata oranını izle, eski yolu kaldır.

Maliyet ve Operasyonel Yük Karşılaştırması
Mikroservislerin görünmeyen maliyeti operasyonda gizlidir. Amazon Prime Video ekibinin monolite dönüşte izleme maliyetini yaklaşık %90 azaltması, ağ çağrısı ve serialization yükünün küçük ölçekte ne kadar pahalı olduğunu gösterir. Aşağıdaki tablo, orta ölçekli bir sistemde tahmini yük dağılımını özetler.
| Maliyet kalemi | Modüler Monolit | Mikroservis | Açıklama |
|---|---|---|---|
| Altyapı (compute) | Baz | 1,5-3x | Servis başına idle kaynak |
| Gözlemlenebilirlik | Düşük | Yüksek | Dağıtık izleme, log hacmi |
| Ağ trafiği | Yok | Yüksek | İç servis çağrıları |
| Geliştirme hızı (başlangıç) | Hızlı | Yavaş | Boilerplate, sözleşme |
| Geliştirme hızı (40+ kişi) | Yavaşlar | Hızlı | Bağımsız dağıtım kazancı |
| İşe alım maliyeti | Düşük | Platform mühendisi gerekir | Uzmanlık açığı |
IDC ve Gartner analizleri, bulut harcamasının önemli bir kısmının yanlış mimari kararından kaynaklı israfa gittiğini belirtir; mikroservislerde her servisin minimum kaynak rezervasyonu bu israfı büyütür. Doğru kuralı koymak için DORA metriklerini ölçmek erken uyarı verir.
Veri Sahipliği ve Tutarlılık: Sessiz Maliyet
Mimari kararın en az konuşulan ama en pahalı boyutu veri sahipliğidir. Modüler monolitte tek bir veritabanı üzerinde ACID işlem garantisi vardır; bir sipariş ile stok düşümü aynı transaction içinde atomik gerçekleşir. Mikroserviste ise her servisin kendi veritabanı olduğu için bu garanti kaybolur ve eventual consistency (sonunda tutarlılık) ile saga deseni devreye girer. Bu, yalnızca teknik bir detay değil; iade, ödeme ve envanter gibi para akan alanlarda doğrudan iş riski yaratır.
Saga deseni, dağıtık bir işlemi bir dizi yerel işleme böler ve her adım başarısız olursa telafi edici (compensating) işlemlerle geri alır. Bu güçlü ama karmaşık bir modeldir: kısmi başarısızlık senaryoları, idempotency garantileri ve sıralama sorunları test yüzeyini büyütür. Martin Fowler’ın Microservices makalesi ve microservices.io saga pattern referansı bu modelin sınırlarını ayrıntılı açar. Aksine, modüler monolitte bu karmaşıklığın tamamından kaçınılır.
| Veri senaryosu | Modüler Monolit | Mikroservis | Risk düzeyi |
|---|---|---|---|
| Çapraz modül işlem | ACID, atomik | Saga, telafi edici | Yüksek |
| Raporlama sorgusu | Tek JOIN | API composition / CQRS | Orta |
| Referans bütünlüğü | FK kısıtı | Uygulama düzeyi | Yüksek |
| Veri taşıma (migration) | Tek şema | Servis başına ayrı | Orta |
| Tutarlılık modeli | Güçlü (strong) | Eventual | İş kuralına bağlı |
| Hata ayıklama | Tek stack trace | Dağıtık iz korelasyonu | Yüksek |
Sonuç açık: güçlü tutarlılık gerektiren alanları aynı dağıtım birimi içinde tutmak, hem doğruluğu hem geliştirme hızını korur. Shopify Engineering’in modüler monolit yazısı, üretim ölçeğinde bu yaklaşımın nasıl çalıştığını anlatır.
Hibrit Yaklaşım: İki Dünyanın Dengesi
2026’da olgun ekiplerin çoğu saf bir tarafı seçmez. Çekirdeği modüler monolit olarak tutar, yalnızca ölçek veya bağımsızlık baskısı net olan birkaç alanı servise çıkarır. Bu “monolit-öncelikli, gerektiğinde servis” yaklaşımı, Martin Fowler’ın MonolithFirst tavsiyesiyle örtüşür ve hem hızlı başlangıç hem de geleceğe açıklık sağlar. Modül sınırlarını derleme zamanında zorlamak için Spring Modulith dokümantasyonu pratik bir başlangıç sunar.
- Çekirdek iş mantığı: tek modüler monolit.
- Yüksek ölçekli, izole edilebilir bileşen (örneğin medya transkodlama): ayrı servis.
- Asenkron iş yükleri: olay tabanlı kuyruk ile gevşek bağlı çalışır.
- Üçüncü taraf entegrasyon adaptörleri: ayrı dağıtım birimi.
Tipik Sorunlar ve Çözümleri
Mimari seçim hataları genellikle erken aşamada görünmez, ölçekle birlikte pahalı hale gelir. En sık karşılaşılan tuzaklar ve doğrudan çözümleri şunlardır:
- Erken mikroservis (premature decomposition): 5 kişilik ekip 30 servise bölünmüş. Çözüm: servisleri modüler monolite geri birleştir, sınırları paket düzeyinde koru.
- Dağıtık monolit: Servisler ağ üzerinden ama hep birlikte dağıtılıyor. Çözüm: gerçek bağımsızlık sağlanamıyorsa monolite dön; sözleşmeleri gevşet.
- Paylaşılan veritabanı: Birden çok servis aynı tabloya yazıyor. Çözüm: veri sahipliğini tek servise ver, diğerlerine API/event ile eriştir.
- Modül sınırı sızıntısı: Monolit içinde modüller birbirinin iç tablosunu çağırıyor. Çözüm: ArchUnit/Spring Modulith ile derleme zamanı doğrulama ekle.
- Gözlemlenebilirlik boşluğu: Mikroserviste istek izi yok. Çözüm: dağıtık izleme (OpenTelemetry) ve korelasyon kimliği zorunlu kıl.
- Saga karmaşası: Dağıtık işlem yönetilemiyor. Çözüm: kritik tutarlılık gerektiren alanları aynı servise topla.

Sonuç ve Öneriler
2026’da varsayılan başlangıç modüler monolittir: düşük operasyonel yük, hızlı geliştirme ve net sınırlarla geleceğe hazırlık sağlar. Mikroservise geçiş, ekip büyüklüğü 40 üzeri, dağıtım çakışması belirginleştiğinde ve bir modül diğerlerinden katbekat fazla ölçeklendiğinde gerekçelenir. Karar duyguyla değil, DORA metrikleri ve APM verisiyle alınır. En sağlıklı yol hibrittir: çekirdeği modüler monolit tut, yalnızca net baskı olan alanları Strangler Fig deseniyle servise çıkar. Yanlış yönde aşırı bölünme, hem maliyeti hem hata ayıklama yüzeyini büyütür; gerektiğinde monolite geri dönmek başarısızlık değil, olgun bir mühendislik kararıdır. Mimari bir kez seçilip rafa kaldırılan bir karar değil, sistemin yaşam döngüsü boyunca yeniden değerlendirilen sürekli bir denge çalışmasıdır. Bugün doğru olan modüler monolit, üç yıl sonra trafik on katına çıktığında belirli bir modül için mikroservise dönüşebilir; önemli olan, sınırları en baştan net tutarak bu evrimi her zaman düşük maliyetli ve geri dönülebilir kılmaktır.
Sıkça Sorulan Sorular
Modüler monolit ile mikroservis arasındaki temel fark nedir?
Modüler monolit tek süreç ve tek dağıtım birimi içinde net modül sınırlarıyla çalışır; süreç içi çağrı kullanır, ağ gecikmesi ve dağıtık işlem sorunu yaşamaz. Mikroservis ise her biri ayrı süreç, ayrı veritabanı ve ayrı dağıtım hattı olan bağımsız servislerden oluşur, bağımsız ölçeklenme sunar ancak operasyonel karmaşıklık getirir.
Yeni bir projeye hangisiyle başlamalıyım?
Çoğu ekip için doğru başlangıç modüler monolittir. Net modül sınırları kurarsanız, ileride bir modülü servise ayırmak mekanik bir iş olur. Mikroservise yalnızca somut bir ölçeklenme, takım bağımsızlığı veya teknoloji çeşitliliği baskısı net olarak doğduğunda geçmek gerekir.
Amazon Prime Video neden mikroservislerden monolite döndü?
Ekip, izleme hattındaki servisler arası veri aktarımı ve serialization yükünün ölçekte pahalı olduğunu gördü; bileşenleri tek bir süreçte birleştirerek altyapı izleme maliyetini yaklaşık %90 azalttı. Bu vaka, mikroservisin her durumda doğru olmadığını ve ölçek profili önemli olmadan ağ yükünün gereksiz maliyet yarattığını gösterir.
Mikroservise geçişin doğru zamanı nasıl anlaşılır?
Tek sinyal yeterli değildir. Ekip 40 kişiyi aştığında, takımlar birbirinin dağıtımını beklediğinde, bir modül diğerlerinden 10 kat fazla ölçeklendiğinde ve operasyon olgunluğunuz platform takımı düzeyine ulaştığında geçiş gerekçelenir. Bu sinyallerden üç veya daha fazlası bir arada görülmelidir.
Hibrit mimari pratikte nasıl uygulanır?
Çekirdek iş mantığını modüler monolit olarak tutarsınız, yalnızca yüksek ölçekli ya da bağımsızlığı kritik birkaç bileşeni ayrı servise çıkarırsınız. Asenkron iş yükleri olay tabanlı kuyrukla gevşek bağlanır. Bu yaklaşım hem hızlı başlangıç hem de seçici ölçeklenme esnekliği sağlar.










Ömer ÖNAL
Haziran 7, 2026Sahada en sık gördüğüm hata, 6 kişilik ekibin 25 servisle başlaması. Operasyon yükü ürünü gömüyor. Tavsiyem net: modüler monolitle başla, sınırları paket düzeyinde katı tut. Bir modül gerçekten 10 kat fazla ölçeklenince Strangler Fig ile sadece onu ayır. Mikroservis bir varsayılan değil, kazanılması gereken bir ayrıcalıktır.