Spring Boot ile Ölçeklenebilir Mikroservis Mimarisi
Ulusal ölçekli bir sistemde mikroservisleri nasıl sınırlandırdığımı, servisler arası iletişimi ve dayanıklılık desenlerini anlatıyorum.
Mikroservis mimarisi, doğru sınırlarla kurgulandığında ekiplere bağımsız geliştirme ve dağıtım özgürlüğü verir. TAKBİS modernizasyonunda en çok zorlandığımız konu, servis sınırlarını domain odaklı (DDD) belirlemekti.
Servisler arası iletişimde senkron REST çağrıları ile asenkron mesajlaşma arasındaki dengeyi kurmak kritikti. Kullanıcının anlık geri bildirim beklediği akışlarda REST, arka planda yürüyen iş süreçlerinde ise event tabanlı yaklaşım tercih ettik.
Dayanıklılık için circuit breaker, timeout ve retry desenleri uyguladık. Bir servisin yavaşlaması tüm sistemi kilitlememeli; hata izolasyonu mikroservislerin en büyük vaadi ve en büyük sorumluluğudur.
Sonuç olarak: küçük başlayın, sınırları veriyle doğrulayın ve gözlemlenebilirliği (logging, tracing, metrics) ilk günden mimariye dahil edin.