Modularity With DDD Using Cell-Based Architecture on Choreo | WSO2Con Barcelona 2025
AI Summary
Summary of “Domain-Driven Design and Cell-Based Architecture”
Introduction
- Overview of Domain-Driven Design (DDD) and its importance in software modeling around the business domain.
- Discussion on the necessity of cell-based architecture to address complexities in managing microservices at scale.
Domain-Driven Design
- Focus on modeling software around business capabilities.
- Key concepts include:
- Bounded Context: A boundary around a business domain.
- Aggregates: Building blocks for the domain.
- Ubiquitous Language: Common terminology between business and development teams.
Challenges with Microservices
- Advantages of microservices:
- Independent services for different business functions.
- Scalability and flexibility with technology stacks.
- Challenges when scaling microservices:
- Governance complexities.
- Inter-service communication issues.
Cell-Based Architecture
- Concept introduced to manage and govern microservices effectively.
- Key components include:
- Cells: Bounded contexts that group microservices into deployable units.
- Components: Can represent microservices, data sources, queues, etc.
- Managed API gateways for external communication.
- Offers a framework to transition from monolithic to distributed architecture.
Coro’s Implementation
- Coro provides a reference implementation of cell-based architecture.
- Focuses on enhancing speed in building, deploying, and managing services.
- Offers a simplified platform for CI/CD, observability, and governance.
Benefits of Cell-Based Architecture
- Encourages modularity and clear ownership of services within teams.
- Facilitates speed in response to market changes and faster delivery of business capabilities.
- Provides flexibility in enforcing design-time governance at runtime through structured boundaries.
Adoption without Coro
- Organizations can implement cell-based architecture without using Coro.
- Guidance for establishing a reference architecture is provided.
Conclusion
- Domain-Driven Design focuses on the domain; cell-based architecture provides the structural framework for implementation.
- Coro operationalizes these concepts through an internal developer platform.