How to tame event-driven microservices

How to tame event-driven microservices

Modern microservice architectures are event-driven, reactive and choreographed (as opposed to centralized control via an orchestrator), which allows them to be loosely coupled and easily changeable, right?

TL; DR: Oh no! You will face obstacles in understanding and managing the flow of events.

In this article, I'll summarize my experiences with microservices choreography and point out the various obstacles and implications of this approach. I am using a typical business example - the โ€œcustomer onboardingโ€ process (depending on the industry, you might hear of it as opening an account ). For the event queue presented below, I'm using Apache Kafka , but don't worry if you are using a different stack, the same concepts will apply.





Choreography of microservices



Suppose the following services and events form your choreographed system:



How to tame event-driven microservices

The main obstacles that arise when using this approach can be described by the following questions



  • How do I change the flow of events?
  • ? ?
  • SLA ? - ? ? ?
  • (, )?


, .







, . - . , , .



How to tame event-driven microservices



.



, , . :



How to tame event-driven microservices



. , .



. , . , . - .





?



, . - ยซ ยป, , . : โ€œ โ€, : โ€œ, , , โ€. โ€œ โ€˜ โ€™?โ€:



, . , , . , , . , โ€” , . , , , . , , .

How to tame event-driven microservices



InfoQ (. โ€œ โ€) :



  1. ( Zipkin Jaeger)
  2. ( Elastic)
  3. ( ProM)
  4. ( Camunda)


, , , . . . Elastic โ€” , . , - . , .







.



How to tame event-driven microservices



โ€œ โ€ .



How to tame event-driven microservices



.



How to tame event-driven microservices



SLA, :



How to tame event-driven microservices



:



How to tame event-driven microservices



: ? ( ), .



, :



How to tame event-driven microservices



, :



How to tame event-driven microservices



Kafka Summit San Francisco 2018 (. โ€œ Kafka Zeebeโ€), .



. โ€œ: .โ€



, , .





SLA



. ?



, . , . ( โ€œ โ€ QCon London; . โ€œ BPM โ€).



How to tame event-driven microservices



(Java Spring Boot) โ€œ3 โ€, Camunda, , ( GitHub). , .



, , . - ! , SLA , SLA.



, .



How to tame event-driven microservices





. โ€œ โ€. , ! . , -, -. .



โ€œ โ€, - , , , - , .



, . , . , , .



How to tame event-driven microservices





, , , , .



How to tame event-driven microservices

, , โ€œโ€ SOA BPM. . . , . , , GitHub.







, :



How to tame event-driven microservices



  • , , โ€œ โ€. , . .
  • , . , API . , , .


. , , -, .







. , , โ€” , . , : . , , .





This post was originally published on InfoWorld . I also recently gave a talk on this topic at QCon NYC (Presentation) .




All Articles