Last years I’ve been working as a Software Architect in multiple companies and industries. I’m coming mainly with Java hands-on experience and beside distributed systems architecture hold also background and interests in software security. Microservices to me was always a tool to reduce growing system complexity and I believe that microservices architecture and containerization becomes a de facto standard for complex systems and growing organisations.
While I was working a lot within financial industry, data consistency was always a challenge with microservices. In financial services such as Kreditech landing planform many communications reflect real money movements and frequently financial data spreads across different domains such as payments, loans or accounting. Making the data consistent was for a long time on my radar and for years I was collecting different solutions to the problem. Recently I’ve joined eBay Classifieds Group Motors Vertical in Berlin and would be happy to add my eBay experiences to my talk as well. In the end I want to present all known to me solutions to reach consistent data representation across multiple microservices such as sagas and compensations, write-ahead log, data reconciliation, change data capture or data replication and finally using events as a single source of truth.
Doing new system from scratch in microservices approach using single database/schema instance I don’t see as a reasonable solution. The different situation is migration to microservices. While having end picture in mind it’s hard to imaging any migration without intermediate steps. I remember few migrations to microservices that required separation of data. In this case everything depends on the difference of the end-picture comparing to current situation and how many steps are required to reach the end-picture. While in easy scenarios data and codebase migration could take a single shot before going life, more complex scenarios required different approach. We made isolation on code level first without separating deployments and data. Depending on the ownership of the microservices after deployments migration, data migration was prioritized accordingly. If the same team owns the service data sharing hurts less than when the data is modified by services owned by different teams. In such case doing data migration is one of the most urgent items in the technical debt backlog.
I’m really excited about the new Voxxeddays format in Paris focused on Microservices which is a golden standard for complex systems architecture so I’m very much looking forward to share my knowledge, learn new things and meet passionate people around!
#microservices #databases #events
Twitter: https://twitter.com/ggonchar
Blog: https://medium.com/@ggonchar
LinkedIn: https://www.linkedin.com/in/grygoriy-gonchar