Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Dealing with legacy monoliths can be challenging due to accumulated technical debt. When faced with this situation, we usually start looking at different strategies to solve this, like microservices, engines, and modularization, just to name a few. When choosing to follow a modular approach, I explored applying microservices patterns to our modular monolith. In this talk, I’ll share my experience in adopting this approach, focusing on ensuring data consistency and distributed transactions, as well as the pitfalls and insights I discovered along the way.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this video, Guillermo Aguirre shares his experiences applying microservices patterns to a modular monolith at RailsConf 2023. He discusses the challenges faced when dealing with legacy monolithic applications and outlines his journey towards adopting a more modular approach. The talk emphasizes the importance of handling data consistency and distributed transactions while navigating through different architectures. **Key Points:** - **Journey Overview:** Aguirre starts by detailing his background as a Rails developer and his transition from designing simple monolithic applications to tackling more complex systems with multi-database orientations and microservices architectures. - **Challenges of Monoliths:** He explains the issues with larger monoliths, including bloated code, lengthy deployment times, and difficulties in maintaining and extending the codebase. These factors contribute to technical debt. - **Introduction to Modularization:** Aguirre introduces the concept of modularization as a solution to the problems faced with monolithic systems. He highlights an article from Shopify that inspired his approach towards modularizing their current project. - **Microservices Patterns:** He explores how microservices patterns can be beneficial for modular monolith implementations, specifically focusing on data isolation and the significance of maintaining communication between services. Aguirre underscores the concepts of having one database per service, and introduces the Saga pattern for handling distributed transactions. - **Transactional Outbox:** Aguirre explains the transactional outbox pattern, which ensures events are emitted atomically, focusing on maintaining data consistency across multiple databases. He advocates for this approach to avoid common pitfalls encountered during microservices implementations. - **Registration Flow Demonstration:** The talk features a demonstration of a simple app where members can register and schedule meetings. Aguirre illustrates the registration flow, showcasing both successful and failure outcomes, along with the rollback mechanisms that ensure the system maintains a consistent state. - **Takeaways:** Aguirre concludes by summarizing that the integration of microservices patterns into a modular monolith architecture can provide significant benefits in managing complexity and ensuring efficient data handling. He encourages attendees to recognize that while these patterns are valuable, they are not a silver bullet and should be considered within the specific context of each project.
Suggest modifications
Cancel