- The document discusses using microservices and event-driven architecture together with orchestration. It notes that while events allow for loose coupling, tracking logical flows across services can become difficult.
- An order handling example is presented to illustrate challenges like a payment service needing to know all possible events that could trigger a payment. This calls for introducing an order service to handle event-command transformation and orchestration across services.
- The document argues that modern lightweight workflow engines can be embedded within microservices to enable orchestration without introducing a centralized point of control. This allows logical flows to be modeled and changes to be made without affecting individual services.
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Orchestration in Microservices
1. @berndruecker#VoxxedVienna
Because your business is
more complex than *
* Some big video streaming company
bernd.ruecker@camunda.com
With thoughts from http://flowing.io
@berndruecker | @martinschimak
8. Let‘s do some groundwork before we
dive into orchestration…
9. System complexity increases dramatically
Warehouse
System
Logistics
Platform
Taxi
System
Travel
Platform
Insurance
System
Insurance
Platform
Heating with
temperature
sensor
Smart Heating
(Cloud
controlled)
…
…
11. Microservices
• Independent components
• Independent deployments
• Decoupling between components
• Dedicated teams to fight conways law
• Autonomy of technology decisions
• Avoid horizontal team boundaries
• New DevOps paradigms
Microservice
Microservice
Microservice
Monolith
A
B
C
A
B
C
20. Sample Microservices
Inventory Service
Handles Stock,
Reserviations and
physical handling
of goods
Payment Service Handles Payment
Shipping Service
Manage
shipments &
labels for logistic
providers
26. Martin Fowler also recognized
Event notification is nice because it implies a low level of
coupling, and is pretty simple to set up. It can become
problematic, however, if there really is a logical flow
that runs over various event notifications. The
problem is that it can be hard to see such a flow as it's
not explicit in any program text. Often the only way to
figure out this flow is from monitoring a live system.
This can make it hard to debug and modify such a flow.
The danger is that it's very easy to make nicely
decoupled systems with event notification, without
realizing that you're losing sight of that larger-scale
flow, and thus set yourself up for trouble in future years
https://martinfowler.com/articles/201701-event-driven.html
27. Event Command Transformation
Payment Service
do
payment
order
placed Transformation
Command
Something has to happen
in the future
1 recipient
Event
Something has happend
in the past
0..n recipients
28. This calls for an order service
Payment service
do
payment
order
placed Order service
35. Some things in life are slow
do
payment
order
placed
payment
received
pick
goods
goods
picked
ship
goods
goods
shipped
order
delivered
Order
Service
Long
Running
Long
Running
Long
Running
Long
Running
37. Bernd Rücker
Co-founder Camunda
> 10+ years workflow
http://bernd-ruecker.com/
bernd.ruecker@camunda.com
Camunda
Open source vendor
Berlin + San Francisco
> 60 employees
No venture capital
www.camunda.org
38. The 7 sins of workflow and Java
Homegrown
engine
No engine Wrong engine
4
6
5
7
All sins: http://blog.bernd-ruecker.com/
Zero-code suites
Wrong usage
43. It does not have to be one monlithic process
Hint: This might work well if your company is structured to
have this one clear process owner for this process.
45. Requirement: lightweight and embeddable engine
Engine must be
• easy to use
• developer friendly
also in the scope of microservices
• technically
• license model
Payment service
Order service
engine
engine
…
…
…
…
engine
57. Changes
Inventory service
Payment service
Order service
Shipping service
must provide
reservation
servicereserve goods at
right moment
Listen to goods
reserved instead
of order created.
Listen to order
created.
With event command
transformation
Without
61. Required changes
Inventory service
Payment service
Order service
Shipping service
Invoice service
skip payment, but
add open invoice
Listen to order
created VIP or
payment received
(non VIP).
Listen to order
created (VIP).
67. Summary
• Microservices and event driven
architecture go well together
• You need an event command
transformation
• If the translation is stateful,
consider using an appropriate
engine
• Modern lightweight engines
foster and not hinder these
architectures
68. Is it for me?
Isn‘t all of that just for FANG?