Arsitektur Microservices dengan Domain-driven Design (DDD)

Oleh Ahmad Nurul Fajar

Arsitektur microservice  melayani skenario  “do just what you need to do”. Pendekatan ini telah terbukti efektif dalam konteks yang sudah akrab dengan pengembangan lincah, DevOps, dan longgar ditambah, event-driven teknologi seperti Node.js Salah satu tantangan terbesar dalam menerapakan arsitektur microservice adalah bagaimana menentukan batas-batas setiap service. Aturan umumnya adalah bahwa service harus melakukan “one thing” dan dirancang sesuai dengan kemampuan bisnis. Pendekatan dalam pemodelan arsitektur microservice adalah dengan Domain-driven Design (DDD). Pendekatan dalam pemodelan arsitektur microservice adalah dengan Domain-driven Design (DDD). (Wasson, 2019). Tahapan DDD adalah : (1). Analyze Domain, (2). Define bounded contexts, (3). Define entities, aggregates, and services, dan (4). Identify microservices

  1. Dimulai dengan menganalisis domain bisnis untuk memahami persyaratan fungsional aplikasi. Output dari langkah ini adalah deskripsi informal dari domain, yang dapat disempurnakan menjadi seperangkat model domain yang lebih formal.
  2. Selanjutnya, menentukan batasan konteks Setiap konteks terikat berisi model domain yang mewakili subdomain tertentu dari aplikasi yang lebih besar.
  3. Menerapakan tactical DDD patterns untuk mendefinisikan entitas, agregat, dan services
  4. Menggunakan hasil dari langkah sebelumnya untuk mengidentifikasi microservice.

 

 

Menurut (Richardson, 2019) pada bukunya menjelaskan bagaimana strategi dalam melakukan tranformasi dari monolitik menuju microservice. Berikut ini 3 strategi utama untuk memecah sistem monolitik yang dilakukan secara bertahap sebagai berkut :

  1. Implementasi fitur baru sebagai service.
  2. Memisahkan layer prensentasi dengan backend
  3. Memecah sistem monolitik dengan mengekstraksi fungsi ke dalam service

 

Referensi :

 

  1. Chris Richardson, “Microservices Pattern”, 2019, Manning Publications
  2. Wasson, M., & Schonning, N. (2019). Build microservices on Azure. website: https://docs.microsoft.com/en-us/azure/architecture/microservices/introduction