iluwatar / java-design-patterns

Design patterns implemented in Java
https://java-design-patterns.com
Other
88.31k stars 26.2k forks source link

Domain-Oriented Microservice Architecture (DOMA) #1336

Open iluwatar opened 3 years ago

iluwatar commented 3 years ago

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.
samilAyoub commented 3 years ago

@iluwatar I can give this a try.

iluwatar commented 3 years ago

Great @samilAyoub, go ahead

vrushofficial commented 2 years ago

@iluwatar can I start with this?

ohbus commented 2 years ago

@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

iluwatar commented 2 years ago

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

iluwatar commented 2 years ago

This issue is free for taking again.