
Ihr Unternehmen möchte möglicherweise auf eine Microservices-Architektur umsteigen und Workflows automatisieren (ich werde in diesem Blogbeitrag nicht auf Motivation eingehen , aber Sie möchten vielleicht mehr über 5 Anwendungsfälle für die Workflow-Automatisierung lesen, die Sie möglicherweise nicht in Betracht gezogen haben, oder über BizDevOps - das wahre Wertversprechen von Workflow-Engines ). Dies bringt Sie in Einklang mit vielen unserer Kunden . In der Regel haben Sie Fragen:
- Umfang und Grenzen - Welche Art von Workflow möchten Sie automatisieren und wie passt er in mehrere Microservices oder in einen fragmentierten Kontext in Ihrer Landschaft ? Ich beschränke mich auf den Umfang dieses Beitrags, daher werde ich dieses Thema heute nicht behandeln. Vielleicht möchten Sie jedoch das Vermeiden des „BPM-Monolithen“ lesen, wenn Sie begrenzte Kontexte oder reales BPMN verwenden .
- Stapel und Werkzeuge - welche Prozess-Engine kann ich verwenden?
- Architektur - Führe ich die Prozess-Engine zentral oder dezentral aus?
- Management - Wer sind die Eigentümer des Workflow-Modells und wie stelle ich es bereit?
- Operationen - Wie behalte ich die Kontrolle?
, . , .
, -, . :
- — ?
- 3 : , RPC- «-»,
, , , flowing-retail GitHub. flowing-retail , . , Camunda BPM Zeebe. — , , .
, - (, Amazon) .
? ?
, , , ( «Microservices» Martin Fowler). Event-driven .
, . . , , , . , , . , , . , . , « - ?» « - , ?» . Complex event flows in distributed systems (, , QCon - DevConf ).
: https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/choreography-alternative

, , . (. ), , , , , . Monitoring and Orchestration of Your Microservices Landscape with Kafka and Zeebe ( Kafka Summit -).

, . - , :

:

. , , . , , . , , :

flowing-retail , -: !

—
? , , ( ).
- ( )
- «-» / ( REST)

, , , .
. . . (« , , ») , (« , O42»).

- : Kafka, RabbitMQ (AMQP), JMS.
- : -, / , , , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java
- : ; - ; (, ) , .
- : , . , « ». .
- /
, , . — REST. . REST, — , ( , , , QCon London).

- : REST, SOAP, gRPC; : https://www.rabbitmq.com/tutorials/tutorial-six-java.html
- : (, ), -, / , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/rest
- : ; .
- : , ; (, Circuit Breaker).
, , . .

- : External Tasks (Camunda BPM) Workers (Zeebe).
- : , -, / , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/zeebe
- : ; .
- : ; — (, REST Messaging).
. , , , .
, Kafka Messaging, . , , REST, , , Spring Boot, . , , , , . Domain-driven design (DDD) , , Akka Axon, , , .
, , , . , , . , - , . , , , .
, . :
- , .
- , .
- , .
Architecture options to run a workflow engine.

. , , , . , () .
- : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/order-camunda
- : ; .
- : ( ); « » ().
: « , »?
. DevOps , . , , , .
, , , . , , , Elastic. (, , , ). . , , .

, , Camunda Optimize Zeebe Operate.
. , . REST (Camunda BPM) gRPC (Zeebe).

, , , .
,
. Camunda, (, Spring Boot Starter) . , . .

- : « ».
- : , , , Rolling Upgrade Deployment Aware Process Engine.
. .
. , , . . , : , . , — .
— , Camunda, , , . , , , .
, . , , - , .
, , , , .
(: ) , , .
, .

flowing-retail :
- : - .
- : .
, - . BPM — , - , — , .
« »?
: « »? : , , « ».
-, , , . , , , , , — . , , — , , , .
« », , , ( , ,…). , , . .
, . , . :

: , RPC- . :

Das Eigentum an Workflow-Modellen sollte im Zuständigkeitsbereich des jeweiligen Microservices liegen. Der Workflow sollte klar auf diesen Bereich ausgerichtet sein.
Sie können die Workflow-Engine zentral oder dezentral ausführen .
Track oder Control - Sie sollten eine ausgewogene Mischung aus Choreografie und Orchestrierung anstreben .