Sunday, October 9, 2016

Event-driven Microservices

A few weekends ago, I decided that it was time to catch up on Microservices. Hadn't been following the topic for a longer while. Starting point is often Safari: but instead of reading, I ended up watching the video tutorial "Event-Driven Microservices". By the way, the first part is freely accessible without a Safari subscription.

The video course is presented by Chris Richardson. I know Chris as a speaker at earlier Devoxx conferences. Very interesting is his approach to address the topic based on patterns, documented at microservices.io.
Microservices patterns (from Microservices.io, by Chris Richardson)

What was new to me and most interesting was the part about Event-Sourcing: instead of storing the state of each object as a database row, the sequence of changes is recorded and maintained. This an approach to tackle the issue of distributed transactions that do not fit with a Microservices architecture. This is also the topic Richardson personally focuses on as his latest startup is all about Event Sourcing.
List of events represents state (Source eventuate.io)


Handling request by rebuilding state from list of events (Source: eventuate.io)
Of course one needs to remain critical about Microservices:
  • We've been successfully building 3-tier web and mobile apps, why do it all different now?
  • How heterogeneous will all these microservices be?  
  • Not every organisation is like LinkedIn or Netflix
  • Transactions that are eventually consistent are not trivial
  • What will be the next thing after Microservices?
After 4h 47minutes, I understood that Microservices is as well a domain that is in full flux.

No comments: