Die Themen Command Query Responsibility Segregation, kurz CQRS, und Microservices sind derzeit in aller Munde. Häufig werden die beiden Themen jedoch getrennt besprochen. So wird CQRS als neues Architekturpattern gehandelt, welches eine Abkehr vom klassischen Schichtmodell darstellt. Parallel dazu werden Microservices als modernes Architektur- und Deploymentmodell vorgestellt, welches zum einen die bestehenden Probleme der klassischen Application-Server Welt adressiert und welches sich als neue Denkweise für Service Orientierte Architekturen empfiehlt.
Beide Ansätze sind für sich alleine betrachtet sehr interessant allerdings bilden sie vor allem in Kombination miteinander ein äusserst attraktives Modell für künftige IT-Landschaften. Der Vortrag wird dieses Modell vorstellen. Des Weiteren zielt der Vortrag auf eine kritische Auseinandersetzung mit diesem Architekturmodell ab.
6. 1 Wir lesen und schreiben
Daten über den identischen
Weg
IncidentSOAPEndpoint
IncidentBusinessService
IncidentDAO
Incident
View
Model
Incident!
Business
Model
Client
Incident
DTO
RDBMS
Incident
ER-Model
Netzwerk
Netzwerk
WRITE
READ
7. 2 Wir verwenden für Lesen
und Schreiben das gleiche
Modell
IncidentSOAPEndpoint
IncidentBusinessService
IncidentDAO
Incident
View
Model
Incident!
Business
Model
Client
Incident
DTO
RDBMS
Incident
ER-Model
Netzwerk
Netzwerk
22. Getrenntes Model
IncidentQueryEndpoint
IncidentQueryService
IncidentQueryDAO
Netzwerk
RDBMS
IncidentCommandEndpoint
IncidentCommandService
IncidentCommandDAO
Read
Model
Write
Model
Achtung: aktuell laufen beide
Models noch auf ein
gemeinsames Datenbank-
Modell zusammen
26. Update
IncidentRestController
IncidentBusinessService
Der Datensatz wird direkt geändert.
IncidentDAO
Incident
Keine Historie
ID USER_ID DATUM TEXT
1 23423 11.03.2014 Maus ist kaputt"
2 67454 12.03.2014 EMail Empfang
3 93729 12.03.2014 Monitor defekt
… … … …
27. Event Sourcing ist ein
Architekturstil bei dem
der Zustand der Daten
einer Anwendung aus
einer Sequenz von
Events bestimmt wird
33. Martin Fowler:
„In short, the microservice
architectural style is an approach to
developing a single application as a
suite of small services, each running in
its own process and communicating
with lightweight mechanisms, often an
HTTP resource API.“
http://martinfowler.com/articles/microservices.html