java-design-patterns icon indicating copy to clipboard operation
java-design-patterns copied to clipboard

Domain-Oriented Microservice Architecture (DOMA)

Open iluwatar opened this issue 5 years ago • 7 comments

Description: The Domain-Oriented Microservice Architecture (DOMA) design pattern focuses on organizing microservices around business domains to improve scalability, flexibility, and maintainability. This pattern leverages domain-driven design principles to ensure that each microservice is aligned with a specific business capability, enabling independent development, deployment, and scaling. The main elements of this pattern include:

  1. Domain-Driven Design (DDD): Using DDD principles to identify and model the core domains and subdomains of the business.
  2. Microservices: Decomposing the application into smaller, loosely coupled services, each responsible for a specific domain or subdomain.
  3. Bounded Contexts: Defining clear boundaries for each microservice to ensure they encapsulate their domain logic and data.
  4. API Gateway: Implementing an API gateway to manage communication between clients and the microservices, providing a unified entry point.
  5. Service Discovery: Utilizing service discovery mechanisms to enable dynamic resolution of microservice instances.
  6. Data Management: Ensuring each microservice has its own data store, promoting data autonomy and consistency within the domain.

References:

Acceptance Criteria:

  1. Identify and document the core domains and subdomains of the application using DDD principles.
  2. Develop and deploy at least one microservice for a critical domain, ensuring it follows the bounded context and has its own data store.
  3. Implement an API gateway and service discovery mechanism to facilitate communication and dynamic resolution between microservices.

iluwatar avatar Jul 25 '20 10:07 iluwatar

@iluwatar I can give this a try.

samilAyoub avatar Sep 06 '20 17:09 samilAyoub

Great @samilAyoub, go ahead

iluwatar avatar Sep 06 '20 17:09 iluwatar

@iluwatar can I start with this?

vrushofficial avatar Jul 28 '21 05:07 vrushofficial

@iluwatar can I start with this?

As there are no commits showing up here as per our contribution guidelines and the ticket has been idle for a long time. I belive you can take it up @vrushofficial

⭐ Thanks for your interest in our project 😃

✔️ Please mention a 📆 timeline 🕙 for when can we expect 🤔 a Pull Request against this issue.

🤝 Looking forward to your contribution. 📖 Be sure to check out our Wiki section

ohbus avatar Jul 30 '21 10:07 ohbus

Please indicate if you are still working on this issue @vrushofficial

iluwatar avatar Oct 24 '21 14:10 iluwatar

This issue is free for taking again.

iluwatar avatar Nov 28 '21 07:11 iluwatar