Modeling Microservices – Bounded Contexts

Microservice tasarımında odak noktamız mümkün olduğu kadar küçük yapılar kurmaktır. Fakat buradaki asıl motivasyon mümkün olan en granüler yapıyı kurmak değil olabildiğince anlamlı ayrıştırmalar ile domain bilgisini soyutlamaktır.

Vurguyu iş yetenekleri yerine ölçek üzerine yapıyor olmak microservice modelleme sürecinde sık rastlanan hatalardan biridir.

Domain bilgisi üzerinde edineceğimiz tecrübenin ve iş süreçlerinin zamanla olgunlaşacak olması sebebi ile microservice’lerimizi ölçeklemek hemen mümkün olmayacaktır. Doğru ölçek için zamana ihtiyacımız olduğu kaçınılmazdır.

Microservice’lerin sürdürülebilirliği noktasında tasarım oldukça önemlidir. Bu noktada makaleninde asıl konusu olan bounded context pattern’a değinmek istiyorum.


Bounded Context nedir?

Business kurallar çerçevesinde birbiri ile yakınen ilişkili (logical boundary) kapsamların guruplaşarak sorumluluk sınırlarının bir küme vasıtasıyla ifade edilmesidir.


Identifying Microservice Boundaries
Identifying Microservice Boundaries

Bounded Context’lerin net bir şekilde belirlenmesi ve akabinde gerçekleşecek development süreçleri ile birlikte ekipler arası bağımsız geliştirme süreçleri adına ortak bir anlayış ortaya çıkar.

Bu süreçler sürdürülebilirliği artırdığı kadar organizasyon şemasınada dogrudan tesir eder. Buna bağlı olarak microservice geliştirme ekiplerinde zaman içerisinde ortak bir dil oluşur. (Ubiquitous Language in Domain-Driven Design)

Ubiquitous Language in Domain-Driven Design
Ubiquitous Language in Domain-Driven Design

Önceki görselde User’in bounded context olusturan Payer ve Subscriber modelleri her ne kader benzer olsalar bile zaman icerisinde organik olarak birbirlerinden izole kendilerini var edecekler ve farklılaşacaklardır. Bununla birlikte iki farkli ekip User’dan bahsederken kendi domain modeline uygun olan dili kullanmak durumunda kalacaktir.

Özetle microservice tasarım ve geliştirme süreçlerinde bounded contex’lerin belirlenmesi implementasyon öncesi oldukça önemli bir başlangıç noktasıdır. Microservice’lerin ölçeklenmesi, sürdürülebilir olması noktasında ise ubiquitous language’lerin oluşması önemli bir kazanımdır.

Hoşçakalın..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s