[Panel] Splitting systems towards bounded contexts and microservices
Jan 13, 2021
auto_awesome
The podcast discusses the benefits of splitting large-scale systems into smaller services and the challenges of dividing systems into bounded contexts and microservices. They explore topics such as considering the human factor in software development, implementing data entities, finding service boundaries, challenges of splitting systems and modernizing legacy code, functional decomposition anti-patterns and event storming, different concerns and collaboration, value configurations and modeling a value mesh, and the next trend after microservices.
Event storming focuses on business flows rather than workflows, identifying different behaviors and patterns in different phases.
Making copies of data into new classes when transitioning boundaries allows for different behaviors and patterns in each boundary, considering the changing nature of data and behavior in each phase.
Deep dives
Events storming and functional decomposition anti-pattern
The question addresses the potential risk of event storming leading to a functional decomposition anti-pattern. The concern is that event storming, with its linear approach, may result in a similar situation where workflow steps become the boundaries. However, event storming focuses on business flows rather than workflows, and the boundaries are higher-level concepts. So, while there is still a risk of linear modeling, event storming has a different perspective and can help identify different behaviors and patterns in different phases.
Copying data into new classes for different boundaries
The speaker mentions their preference for making copies of data into new classes when transitioning to different boundaries. This approach allows for different behaviors and patterns in each boundary and avoids the pitfalls of having the same data structure or object moving from one boundary to another. The speaker emphasizes the importance of considering the different phases and the changing nature of the data and behavior in each phase.
The Future of Splitting Systems
The panelists discuss what could come after microservices and predict that the next step may involve a more nuanced approach to splitting systems, focusing on pattern sequences and identifying specific patterns for splitting.
Key Heuristics for Splitting Systems
The panelists share their favorite heuristics for splitting large-scale systems. They highlight the importance of taking an outside-in perspective, conducting big picture event storming sessions, prioritizing modules based on business value, and considering the rates of change and friction in the system.
There are many reasons to split up large-scale systems towards more modular, smaller services with their own model and language. You can decouple teams and give full autonomy of that service to a team. By decoupling services and teams you can handle changes to the domain faster, having a faster time to market. You decrease the cognitive load of the teams, empowering teams to truly understand the complexity of their shared models with domain experts.
But how do we split up large-scale systems? What are the characteristics we can dissect a bounded context? How do we split towards a microservices architecture? We do not only have to deal with shifting terminology here but also different rates of change in the business.
Join us in this Panel where we will hunt for design heuristics to split systems towards bounded contexts and microservices.
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode