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:
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 ? - ? ? ?
- (, )?
, .
, . - . , , .
.
, , . :
. , .
. , . , . - .
?
, . - ยซ ยป, , . : โ โ, : โ, , , โ. โ โ โ?โ:
, . , , . , , . , โ , . , , , . , , .
InfoQ (. โ โ) :
- ( Zipkin Jaeger)
- ( Elastic)
- ( ProM)
- ( Camunda)
, , , . . . Elastic โ , . , - . , .
.
โ โ .
.
SLA, :
:
: ? ( ), .
, :
, :
Kafka Summit San Francisco 2018 (. โ Kafka Zeebeโ), .
, , .
SLA
. ?
, . , . ( โ โ QCon London; . โ BPM โ).
(Java Spring Boot) โ3 โ, Camunda, , ( GitHub). , .
, , . - ! , SLA , SLA.
, .
. โ โ. , ! . , -, -. .
โ โ, - , , , - , .
, . , . , , .
, , , , .
, , โโ SOA BPM. . . , . , , GitHub.
, :
- , , โ โ. , . .
- , . , API . , , .
. , , -, .
. , , โ , . , : . , , .
This post was originally published on InfoWorld . I also recently gave a talk on this topic at QCon NYC (Presentation) .