SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Commands & Events –
Divide and Conquer in
Microservice Architekturen
Beat Winistörfer, IT Architekt
Quelle: https://www.flickr.com/photos/nicola_s/20141007433
Aufteilen liegt im Wesen jeder
Microservice Architektur
Microservice Architektur
Komplexe Anwendungssoftware als Suite von kleinen,
unabhängigen Services mit eigener Datenhaltung.
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 2
Quelle: http://insureblog.blogspot.com/2011/06/ode-to-rube-goldberg.htmlQuelle: https://martinfowler.com/articles/microservices.html
Aber nicht alle
Anforderungen
machen an der
Grenze der
Microservices
halt…
Das CAP Theorem von Eric Brewer
Ein verteiltes System kann nur 2 der folgenden 3
Eigenschaften erfüllen
1. Konsistenz
2. Verfügbarkeit
3. Ausfalltoleranz
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 3
Quelle: https://www.compact.nl/en/articles/big-data-too-big-to-ignore-2/
BASE Prinzip
Basically Available
Soft State,
Eventual Consistency
BASE
BASE Transaktion als Abfolge von Statusänderungen in Microservices
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 4
Basically Available
Asynchrone Kommunikation überbrückt
Verfügbarkeitsprobleme. Auftrag entgegen
nehmen, Antwort später…
Softstate
Zustand in dem ein Teil der Microservices im
neuen Zustand und ein Teil noch im alten Zustand
sind.
Eventual Consistent
Schlussendlich erreichen alle involvierten
Microservices einen konsistenten Zustand oder
über Kompensationen wieder den
Ausgangszustand.
Den Unterschied zwischen "eventual consistent" und "eventuell konsistent"
macht verlässliche Kommunikation
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 5
Statusänderung und sich daraus ergebende
Kommunikation müssen eine Einheit bilden
• ACID Transaktion garantiert At-Least-Once
Delivery beim Producer
− Message-Tabellen & Hintergrund Versandjob
− Kafka Transaktion
(eigene Änderung & Kommunikation)
• Asynchrone Kommunikationsinfrastruktur
muss ebenfalls At-Least-Once Delivery
garantieren
• Consumer muss Idempotenz bei der
Verarbeitung garantieren.
Commands & Events
• Kommunikationen aus Statusänderungen lassen sich grob in 2 Kategorien unterteilen
• Events: Benachrichtigungen aus der Vergangenheit über einen bestimmten Vorfall
− Empfänger aus Sicht Produzent irrelevant. Benachrichtigung durch Konsumenten unüblich
− Mehrere Empfänger durchaus üblich, ändert sich über die Zeit
− Kein Empfänger oft zulässig (Broadcast von Änderungen bspw.), kann aber auch ein
Problem sein (bspw. Dokument Eingang um den sich niemand kümmert).
− Normalerweise nur ein Produzent
• Commands: in Zukunft zu erledigende Aufträge
− Produzent hat eine klare Erwartung, muss aber die konkrete Umsetzung nicht kennen.
Benachrichtigung über Erledigung gängig.
− Normalerweise genau ein Empfänger aber durchaus mehrere Produzenten
− Kein Empfänger unzulässig (Fehler)
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 6
Beispiele:
➢ Änderungs-Events
➢ Dokument-Eingang
➢ Prozess Abschluss
➢ Online Schadenmeldung
➢ …
Beispiele:
➢ Änderung durchführen
➢ Visum einholen
➢ Zahlung auslösen
➢ Dokument versenden
➢ …
Prozessmodellierung und Verantwortlichkeit
Command oder Event?
Command – Auftraggeber bleibt in der Verantwortung
Der Auftraggeber bleibt in der Prozessverantwortung. Der Prozess ist erst abgeschlossen wenn
der Auftrag erledigt wurde, allfällige Konsequenzen aus einer nicht möglichen Verarbeitung des
Auftrags müssen vom Aufraggeber gezogen werden.
Event – Aprés moi le déluge… Verantwortlich für eine Verarbeitung ist der Konsument
Die Prozessverantwortung ist mit der Kommunikation der sich daraus ergebenden Events
wahrgenommen.
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 7
Command Event
Event
Orchestrierung
Choreografie
Umsetzung von BASE Transaktionen als
orchestrierender Microservice (Saga Pattern)
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 8
• BASE Transaktionen als Microservice
− dezentral, CI/CD
− Devops Verantwortlichkeit für Prozess
• Verschachtelbar (über Orchestrierung oder Choreografie), weitere Events integrierbar
• Deklarative Prozessdefinition
• Standard Schnittstellen für Überwachung und Administration
BASE Transaktion (Saga) Service
Service A Service B Service C
Client
Command
Command A Event A Command B Event B Command C Event C
Event
Btx Status
Admin ClientMonitoring Client
Auslösender Event
Event
Events
BTx @ Mobiliar
• Java Library für Command/Event Erstellung/Verarbeitung
− Standard Datenbanktabelle für Commands/Events
− Backgroundjob
− Monitoring/Admin REST Interface
• Java Library für BASE Transaktionen
− Standard Datenbanktabelle für Statusverwaltung
− Fluent API für Prozess Definition
− Backgroundjob
− Prozessvisualisierung Definition und Instanz über PlantUML
− Monitoring/Admin REST Interface
• Kommunikation
− Command Mapping auf REST
− Events über JMS via Publish/Subscribe Event Plattform auf Basis von Apache Camel
− Commands & Events neu auch über Kafka
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 9
Processdefinition as Code, Visualisierung über PlantUML
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 10
return BTxDefinition.newBuilder(OmsBtxState.class, OMS_BTX_DEFINITION_ID)
.while_("Verarbeitung EinlieferungEinheiten", OmsBtxState::isBtxWaitingForMoreEE)
.waitForEvent(JOIN_RUNNING_BTX_EVENT)
.activity(new FunctionActivity<>(SendVorbereitungActivity.ACTIVITY_NAME, sendVorbereitungAct
.waitForEvent(WAIT_FOR_VORBEREITUNG_CONSUMER)
.if_("Vorbereitung fehlerhaft",
(omsBtxState) -> isEinlieferActivityFehlerhaft(omsBtxState, WAIT_FOR_VORBEREITUNG_CON
.activity(new FunctionActivity<>(FailedVorbereitungActivity.ACTIVITY_NAME, failedVorbere
.endIf()
.activity(new FunctionActivity<>(SendFachdatenActivity.ACTIVITY_NAME, sendFachdatenActivity)
.waitForEvent(WAIT_FOR_FACHDATEN_CONSUMER)
.if_("Fachdaten fehlerhaft",
(omsBtxState) -> isEinlieferActivityFehlerhaft(omsBtxState, WAIT_FOR_FACHDATEN_CONSUM
.activity(new FunctionActivity<>(FailedFachdatenActivity.ACTIVITY_NAME, failedFachdatenA
.endIf()
.activity(new FunctionActivity<>(PrepareAufbereitungActivity.ACTIVITY_NAME, prepareAufbereit
.while_("Aufbereitung KorrespondenzInfoArten", OmsBtxState::isAufbereitungenPendent)
.activity(new FunctionActivity<>(SendAufbereitungActivity.ACTIVITY_NAME, sendAufberei
.waitForEvent(WAIT_FOR_AUFBEREITUNG_CONSUMER)
…
Andere BTx Implementationen…
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 11
Service C
Service B
BASE Transaktion Service
Service A
Client
Command
Pollen für Commands
Event
Prozess Def.
Btx StatusAdmin ClientMonitoring Client
Auslösender Event
Event
Zeebe Cluster
Prozess
Definition
Start
BTx
Pollen für
Ende
• Open Source
• Prozessdefinitionen in BPMN (reduziert)
• Commands Pollen und Resultat (gRPC bidirektional)
• Zusätzliche Messages können integriert werden
Resultat "Event"
Messages
(Events)
Events
Andere BTx Implementationen…
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 12
Simple Workflow Service
• Cloud basiert
• Optimiert für Inter Cloud Kommunikation (HTTP Polling)
• Keine Prozess Definitionen
• Message Integration über Signale
• Progress Meldungen der Worker Services mit Abbruch Option
Service C
Service B
BASE Transaktion Service
Service A
Client
Command
Resultat
"Event"
Event
Btx Status
Admin Client
Monitoring Client
Auslösender Event
Event
AWS SWF
Start
BTx
Pollen
Für
Decision Tasks
Pollen für Commands
Next
Decision
Progress
Signal
(Events)
Events
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 13
Und wo bleiben eigentlich die Benutzer?
Strategie: Fall basiertes Arbeiten
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 14
BTx «Orchestrator»
Statusmodell
Command
Command
Aufruf
Fall Aktion
Command
Event
Command
Event
Fall
Prozess
Fallstatus
Prozess Prozess
Fall als Prozesskontext mit referenzierte Objekten
Fallstatus
Notiz Zugeordneter
Vertrag
Aufgabe
Fallstatus
Aufgabe
Fallstatus
Fall
eröffnet
Fall
abgeschlossen
Command
Wiedervorlage
(Aufgabe in Zukunft)
Aufgabe
Event
Fälle zum Bearbeiten von Kundenanliegen und internen Prozessen über alle Zugänge hinweg
Organisation der Arbeit über Zuweisung von Fällen und Aufgaben inkl. freidefinierbare Arbeitskörbe (persönlich & Team)
Standard Funktionalität für Freitextaufgaben, Aktionen, Notizen und eDossier für Dokumente.
Spezifischer Fall ServiceSpezifischer Fall Service
Dezentrale Fall Geschäftslogik & Bearbeitung,
zentrale, konsolidierte Übersicht für den Benutzer
29/30.11.2017Commands & Events – Divide and Conquer in Microservice Architekturen 15
ARO Service
Fällen und
Aufgaben erstellen
inkl. Links & Callbacks
Listen mit Links
Navigation über Link
Aufgaben Erledigen
über Callback
ARO Schreibtisch UI Spezifisches Fall UI
Fallzustände
Spezifischer Fall Orchestrierung
Service
Fallzustandslogik
Ereignisse als Historie für Fälle und Geschäftsobjekte
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 16
Ereignis
Fall Geschäftsobjekt
erzeugt, verändert
referenziert
Benutzer
Input
Management
erzeugt
H
Ereignis Historien auf Geschäftsobjekt Übersichten und Fall UIs
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 17
Event Verteilung Plattform
Geschäfts-
komponenteGeschäfts-
komponenteMicroservices
Ereignisse mit
Historien Info
Geschäftsvorfall
Protokollierung
H
Historie lesen
Infosicht Partner
H
Infosicht Vertrag
H
Fall UIs
Navigation auf
Ereignis
Kontext
12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 18
Q & A
beat.winistoerfer@mobi.ch

Weitere ähnliche Inhalte

Was ist angesagt?

8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzenAWS Germany
 
Achim Schuch (Chori Technologie)
Achim Schuch (Chori Technologie)Achim Schuch (Chori Technologie)
Achim Schuch (Chori Technologie)Praxistage
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformQAware GmbH
 
Trusted Shops und LeanIX Enterprise Architektur Management Success Story
Trusted Shops und LeanIX Enterprise Architektur Management Success StoryTrusted Shops und LeanIX Enterprise Architektur Management Success Story
Trusted Shops und LeanIX Enterprise Architektur Management Success StoryLeanIX GmbH
 
Jochen Schafberger (evidanza)
Jochen Schafberger (evidanza)Jochen Schafberger (evidanza)
Jochen Schafberger (evidanza)Praxistage
 
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green City
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green CityEmissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green City
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green Cityconfluent
 
Josef Weissinger (Soroban IT-Beratung)
Josef Weissinger (Soroban IT-Beratung)Josef Weissinger (Soroban IT-Beratung)
Josef Weissinger (Soroban IT-Beratung)Praxistage
 
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieters
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud AnbietersSwiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieters
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieterstopsoft - inspiring digital business
 
NetTask Cloud Service - Reseller Programm Guide
NetTask Cloud Service - Reseller Programm GuideNetTask Cloud Service - Reseller Programm Guide
NetTask Cloud Service - Reseller Programm GuideNetTask GmbH
 
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...topsoft - inspiring digital business
 
Matthias Hausegger (Amaris)
Matthias Hausegger (Amaris)Matthias Hausegger (Amaris)
Matthias Hausegger (Amaris)Praxistage
 
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)Praxistage
 
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a Service
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a ServiceiPaas: Mehr Kür, weniger Pflicht – Integration Platform as a Service
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a ServiceSEEBURGER
 
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...topsoft - inspiring digital business
 
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...RGillessen
 
SharePoint Web Content-Archivierung mit Qumram
SharePoint Web Content-Archivierung mit QumramSharePoint Web Content-Archivierung mit Qumram
SharePoint Web Content-Archivierung mit QumramQumram
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Trivadis
 
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo Müller
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo MüllerEinführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo Müller
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo MüllerDigicomp Academy AG
 
Die Abbildung von Services in der Configuration Management Database
Die Abbildung von Services in der Configuration Management DatabaseDie Abbildung von Services in der Configuration Management Database
Die Abbildung von Services in der Configuration Management DatabaseDigicomp Academy AG
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBBATbern
 

Was ist angesagt? (20)

8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
8 Tipps für eine Cloud Strategie – wie Unternehmen heute die Cloud einsetzen
 
Achim Schuch (Chori Technologie)
Achim Schuch (Chori Technologie)Achim Schuch (Chori Technologie)
Achim Schuch (Chori Technologie)
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Trusted Shops und LeanIX Enterprise Architektur Management Success Story
Trusted Shops und LeanIX Enterprise Architektur Management Success StoryTrusted Shops und LeanIX Enterprise Architektur Management Success Story
Trusted Shops und LeanIX Enterprise Architektur Management Success Story
 
Jochen Schafberger (evidanza)
Jochen Schafberger (evidanza)Jochen Schafberger (evidanza)
Jochen Schafberger (evidanza)
 
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green City
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green CityEmissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green City
Emissionsfreie Mobilität gestalten: Mit Open Source Technologien zur Green City
 
Josef Weissinger (Soroban IT-Beratung)
Josef Weissinger (Soroban IT-Beratung)Josef Weissinger (Soroban IT-Beratung)
Josef Weissinger (Soroban IT-Beratung)
 
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieters
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud AnbietersSwiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieters
Swiss Cloud Conference 2014: die Folgen des Konkurses des Cloud Anbieters
 
NetTask Cloud Service - Reseller Programm Guide
NetTask Cloud Service - Reseller Programm GuideNetTask Cloud Service - Reseller Programm Guide
NetTask Cloud Service - Reseller Programm Guide
 
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...
Swiss Cloud Conference 2014: Wachstum und Herausforderung im Mittelstand meis...
 
Matthias Hausegger (Amaris)
Matthias Hausegger (Amaris)Matthias Hausegger (Amaris)
Matthias Hausegger (Amaris)
 
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)
Mag. Kurt Nowotny (3i Software), Josef Weissinger (Soroban)
 
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a Service
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a ServiceiPaas: Mehr Kür, weniger Pflicht – Integration Platform as a Service
iPaas: Mehr Kür, weniger Pflicht – Integration Platform as a Service
 
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...
Swiss Cloud Conference 2014: GovCloud - der Weg in die transparente und siche...
 
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...
DER CONFIGURATIONMANAGEMENT PROZESS als Voraussetzung für aktuelle Daten in d...
 
SharePoint Web Content-Archivierung mit Qumram
SharePoint Web Content-Archivierung mit QumramSharePoint Web Content-Archivierung mit Qumram
SharePoint Web Content-Archivierung mit Qumram
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
 
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo Müller
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo MüllerEinführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo Müller
Einführung und Betrieb einer CMDB bei der Unternehmensgruppe Theo Müller
 
Die Abbildung von Services in der Configuration Management Database
Die Abbildung von Services in der Configuration Management DatabaseDie Abbildung von Services in der Configuration Management Database
Die Abbildung von Services in der Configuration Management Database
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBB
 

Ähnlich wie batbern43 Command & Events Divide and conquer in Microservice Architekturen

DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdfDACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdfDNUG e.V.
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensivecamunda services GmbH
 
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesZeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesBATbern
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
Event Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg
Event Driven Architecture - OPITZ CONSULTING - Schmutz - WinterbergEvent Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg
Event Driven Architecture - OPITZ CONSULTING - Schmutz - WinterbergOPITZ CONSULTING Deutschland
 
Windows Server 8 - eine Vorschau
Windows Server 8 - eine VorschauWindows Server 8 - eine Vorschau
Windows Server 8 - eine VorschauDigicomp Academy AG
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisencamunda services GmbH
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things ArchitectureChristian Waha
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!confluent
 
Windows Azure für Entwickler V1
Windows Azure für Entwickler V1Windows Azure für Entwickler V1
Windows Azure für Entwickler V1Sascha Dittmann
 
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für GeschäftskontinuitätKeine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuitätteam-WIBU
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow OeffentlichRalf Ruethlein
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Innovationen aus der Cloud ganz einfach nutzen
Innovationen aus der Cloud ganz einfach nutzenInnovationen aus der Cloud ganz einfach nutzen
Innovationen aus der Cloud ganz einfach nutzenAmazon Web Services
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche1&1
 
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-ModellenErfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-ModellenFlexera
 
Webinar: Azure Virtual Desktop in der Praxis
Webinar: Azure Virtual Desktop in der PraxisWebinar: Azure Virtual Desktop in der Praxis
Webinar: Azure Virtual Desktop in der PraxisA. Baggenstos & Co. AG
 

Ähnlich wie batbern43 Command & Events Divide and conquer in Microservice Architekturen (20)

DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdfDACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
DACHNUG50 Event driven Architecture - Bernd Gewehr - Voessing de.pdf
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensive
 
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesZeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
 
Camunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - DeutschCamunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - Deutsch
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Event Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg
Event Driven Architecture - OPITZ CONSULTING - Schmutz - WinterbergEvent Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg
Event Driven Architecture - OPITZ CONSULTING - Schmutz - Winterberg
 
Windows Server 8 - eine Vorschau
Windows Server 8 - eine VorschauWindows Server 8 - eine Vorschau
Windows Server 8 - eine Vorschau
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisen
 
Cloud-Native ohne Vendor Lock-in mit Kubernetes
Cloud-Native ohne Vendor Lock-in mit KubernetesCloud-Native ohne Vendor Lock-in mit Kubernetes
Cloud-Native ohne Vendor Lock-in mit Kubernetes
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things Architecture
 
Simplify SCCM with netECM
Simplify SCCM with netECMSimplify SCCM with netECM
Simplify SCCM with netECM
 
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
 
Windows Azure für Entwickler V1
Windows Azure für Entwickler V1Windows Azure für Entwickler V1
Windows Azure für Entwickler V1
 
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für GeschäftskontinuitätKeine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Innovationen aus der Cloud ganz einfach nutzen
Innovationen aus der Cloud ganz einfach nutzenInnovationen aus der Cloud ganz einfach nutzen
Innovationen aus der Cloud ganz einfach nutzen
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
 
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-ModellenErfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
Erfolgreiches Lizenzmanagement in Virtual-Desktop-Umgebungen und BYOD-Modellen
 
Webinar: Azure Virtual Desktop in der Praxis
Webinar: Azure Virtual Desktop in der PraxisWebinar: Azure Virtual Desktop in der Praxis
Webinar: Azure Virtual Desktop in der Praxis
 

Mehr von BATbern

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceBATbern
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureBATbern
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisBATbern
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at LifestageBATbern
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesBATbern
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!BATbern
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersBATbern
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionBATbern
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenBATbern
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLBATbern
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarBATbern
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?BATbern
 

Mehr von BATbern (20)

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und Knacknüsse
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplace
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven Architecture
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der Praxis
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at Lifestage
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless Architectures
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/ML
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdf
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdf
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?
 

batbern43 Command & Events Divide and conquer in Microservice Architekturen

  • 1. Commands & Events – Divide and Conquer in Microservice Architekturen Beat Winistörfer, IT Architekt Quelle: https://www.flickr.com/photos/nicola_s/20141007433
  • 2. Aufteilen liegt im Wesen jeder Microservice Architektur Microservice Architektur Komplexe Anwendungssoftware als Suite von kleinen, unabhängigen Services mit eigener Datenhaltung. 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 2 Quelle: http://insureblog.blogspot.com/2011/06/ode-to-rube-goldberg.htmlQuelle: https://martinfowler.com/articles/microservices.html Aber nicht alle Anforderungen machen an der Grenze der Microservices halt…
  • 3. Das CAP Theorem von Eric Brewer Ein verteiltes System kann nur 2 der folgenden 3 Eigenschaften erfüllen 1. Konsistenz 2. Verfügbarkeit 3. Ausfalltoleranz 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 3 Quelle: https://www.compact.nl/en/articles/big-data-too-big-to-ignore-2/ BASE Prinzip Basically Available Soft State, Eventual Consistency BASE
  • 4. BASE Transaktion als Abfolge von Statusänderungen in Microservices 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 4 Basically Available Asynchrone Kommunikation überbrückt Verfügbarkeitsprobleme. Auftrag entgegen nehmen, Antwort später… Softstate Zustand in dem ein Teil der Microservices im neuen Zustand und ein Teil noch im alten Zustand sind. Eventual Consistent Schlussendlich erreichen alle involvierten Microservices einen konsistenten Zustand oder über Kompensationen wieder den Ausgangszustand.
  • 5. Den Unterschied zwischen "eventual consistent" und "eventuell konsistent" macht verlässliche Kommunikation 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 5 Statusänderung und sich daraus ergebende Kommunikation müssen eine Einheit bilden • ACID Transaktion garantiert At-Least-Once Delivery beim Producer − Message-Tabellen & Hintergrund Versandjob − Kafka Transaktion (eigene Änderung & Kommunikation) • Asynchrone Kommunikationsinfrastruktur muss ebenfalls At-Least-Once Delivery garantieren • Consumer muss Idempotenz bei der Verarbeitung garantieren.
  • 6. Commands & Events • Kommunikationen aus Statusänderungen lassen sich grob in 2 Kategorien unterteilen • Events: Benachrichtigungen aus der Vergangenheit über einen bestimmten Vorfall − Empfänger aus Sicht Produzent irrelevant. Benachrichtigung durch Konsumenten unüblich − Mehrere Empfänger durchaus üblich, ändert sich über die Zeit − Kein Empfänger oft zulässig (Broadcast von Änderungen bspw.), kann aber auch ein Problem sein (bspw. Dokument Eingang um den sich niemand kümmert). − Normalerweise nur ein Produzent • Commands: in Zukunft zu erledigende Aufträge − Produzent hat eine klare Erwartung, muss aber die konkrete Umsetzung nicht kennen. Benachrichtigung über Erledigung gängig. − Normalerweise genau ein Empfänger aber durchaus mehrere Produzenten − Kein Empfänger unzulässig (Fehler) 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 6 Beispiele: ➢ Änderungs-Events ➢ Dokument-Eingang ➢ Prozess Abschluss ➢ Online Schadenmeldung ➢ … Beispiele: ➢ Änderung durchführen ➢ Visum einholen ➢ Zahlung auslösen ➢ Dokument versenden ➢ …
  • 7. Prozessmodellierung und Verantwortlichkeit Command oder Event? Command – Auftraggeber bleibt in der Verantwortung Der Auftraggeber bleibt in der Prozessverantwortung. Der Prozess ist erst abgeschlossen wenn der Auftrag erledigt wurde, allfällige Konsequenzen aus einer nicht möglichen Verarbeitung des Auftrags müssen vom Aufraggeber gezogen werden. Event – Aprés moi le déluge… Verantwortlich für eine Verarbeitung ist der Konsument Die Prozessverantwortung ist mit der Kommunikation der sich daraus ergebenden Events wahrgenommen. 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 7 Command Event Event Orchestrierung Choreografie
  • 8. Umsetzung von BASE Transaktionen als orchestrierender Microservice (Saga Pattern) 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 8 • BASE Transaktionen als Microservice − dezentral, CI/CD − Devops Verantwortlichkeit für Prozess • Verschachtelbar (über Orchestrierung oder Choreografie), weitere Events integrierbar • Deklarative Prozessdefinition • Standard Schnittstellen für Überwachung und Administration BASE Transaktion (Saga) Service Service A Service B Service C Client Command Command A Event A Command B Event B Command C Event C Event Btx Status Admin ClientMonitoring Client Auslösender Event Event Events
  • 9. BTx @ Mobiliar • Java Library für Command/Event Erstellung/Verarbeitung − Standard Datenbanktabelle für Commands/Events − Backgroundjob − Monitoring/Admin REST Interface • Java Library für BASE Transaktionen − Standard Datenbanktabelle für Statusverwaltung − Fluent API für Prozess Definition − Backgroundjob − Prozessvisualisierung Definition und Instanz über PlantUML − Monitoring/Admin REST Interface • Kommunikation − Command Mapping auf REST − Events über JMS via Publish/Subscribe Event Plattform auf Basis von Apache Camel − Commands & Events neu auch über Kafka 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 9
  • 10. Processdefinition as Code, Visualisierung über PlantUML 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 10 return BTxDefinition.newBuilder(OmsBtxState.class, OMS_BTX_DEFINITION_ID) .while_("Verarbeitung EinlieferungEinheiten", OmsBtxState::isBtxWaitingForMoreEE) .waitForEvent(JOIN_RUNNING_BTX_EVENT) .activity(new FunctionActivity<>(SendVorbereitungActivity.ACTIVITY_NAME, sendVorbereitungAct .waitForEvent(WAIT_FOR_VORBEREITUNG_CONSUMER) .if_("Vorbereitung fehlerhaft", (omsBtxState) -> isEinlieferActivityFehlerhaft(omsBtxState, WAIT_FOR_VORBEREITUNG_CON .activity(new FunctionActivity<>(FailedVorbereitungActivity.ACTIVITY_NAME, failedVorbere .endIf() .activity(new FunctionActivity<>(SendFachdatenActivity.ACTIVITY_NAME, sendFachdatenActivity) .waitForEvent(WAIT_FOR_FACHDATEN_CONSUMER) .if_("Fachdaten fehlerhaft", (omsBtxState) -> isEinlieferActivityFehlerhaft(omsBtxState, WAIT_FOR_FACHDATEN_CONSUM .activity(new FunctionActivity<>(FailedFachdatenActivity.ACTIVITY_NAME, failedFachdatenA .endIf() .activity(new FunctionActivity<>(PrepareAufbereitungActivity.ACTIVITY_NAME, prepareAufbereit .while_("Aufbereitung KorrespondenzInfoArten", OmsBtxState::isAufbereitungenPendent) .activity(new FunctionActivity<>(SendAufbereitungActivity.ACTIVITY_NAME, sendAufberei .waitForEvent(WAIT_FOR_AUFBEREITUNG_CONSUMER) …
  • 11. Andere BTx Implementationen… 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 11 Service C Service B BASE Transaktion Service Service A Client Command Pollen für Commands Event Prozess Def. Btx StatusAdmin ClientMonitoring Client Auslösender Event Event Zeebe Cluster Prozess Definition Start BTx Pollen für Ende • Open Source • Prozessdefinitionen in BPMN (reduziert) • Commands Pollen und Resultat (gRPC bidirektional) • Zusätzliche Messages können integriert werden Resultat "Event" Messages (Events) Events
  • 12. Andere BTx Implementationen… 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 12 Simple Workflow Service • Cloud basiert • Optimiert für Inter Cloud Kommunikation (HTTP Polling) • Keine Prozess Definitionen • Message Integration über Signale • Progress Meldungen der Worker Services mit Abbruch Option Service C Service B BASE Transaktion Service Service A Client Command Resultat "Event" Event Btx Status Admin Client Monitoring Client Auslösender Event Event AWS SWF Start BTx Pollen Für Decision Tasks Pollen für Commands Next Decision Progress Signal (Events) Events
  • 13. 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 13 Und wo bleiben eigentlich die Benutzer?
  • 14. Strategie: Fall basiertes Arbeiten 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 14 BTx «Orchestrator» Statusmodell Command Command Aufruf Fall Aktion Command Event Command Event Fall Prozess Fallstatus Prozess Prozess Fall als Prozesskontext mit referenzierte Objekten Fallstatus Notiz Zugeordneter Vertrag Aufgabe Fallstatus Aufgabe Fallstatus Fall eröffnet Fall abgeschlossen Command Wiedervorlage (Aufgabe in Zukunft) Aufgabe Event Fälle zum Bearbeiten von Kundenanliegen und internen Prozessen über alle Zugänge hinweg Organisation der Arbeit über Zuweisung von Fällen und Aufgaben inkl. freidefinierbare Arbeitskörbe (persönlich & Team) Standard Funktionalität für Freitextaufgaben, Aktionen, Notizen und eDossier für Dokumente.
  • 15. Spezifischer Fall ServiceSpezifischer Fall Service Dezentrale Fall Geschäftslogik & Bearbeitung, zentrale, konsolidierte Übersicht für den Benutzer 29/30.11.2017Commands & Events – Divide and Conquer in Microservice Architekturen 15 ARO Service Fällen und Aufgaben erstellen inkl. Links & Callbacks Listen mit Links Navigation über Link Aufgaben Erledigen über Callback ARO Schreibtisch UI Spezifisches Fall UI Fallzustände Spezifischer Fall Orchestrierung Service Fallzustandslogik
  • 16. Ereignisse als Historie für Fälle und Geschäftsobjekte 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 16 Ereignis Fall Geschäftsobjekt erzeugt, verändert referenziert Benutzer Input Management erzeugt
  • 17. H Ereignis Historien auf Geschäftsobjekt Übersichten und Fall UIs 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 17 Event Verteilung Plattform Geschäfts- komponenteGeschäfts- komponenteMicroservices Ereignisse mit Historien Info Geschäftsvorfall Protokollierung H Historie lesen Infosicht Partner H Infosicht Vertrag H Fall UIs Navigation auf Ereignis Kontext
  • 18. 12.08.2019Commands & Events – Divide and Conquer in Microservice Architekturen 18 Q & A beat.winistoerfer@mobi.ch