Skip to content
This repository has been archived by the owner on Nov 27, 2023. It is now read-only.

Blogbeitrag: Saga Muster als Zutat für erfolgreiche Systeme #281

Merged
merged 7 commits into from
Oct 17, 2023

Conversation

eleazar-araujo
Copy link
Contributor

@eleazar-araujo eleazar-araujo commented Aug 13, 2023

…and assets

Wenn du einen Pull-Request stellst, teile uns bitte deine Änderungen mit, indem du die unten angegebene Publish-Checkliste nutzt.

Publish Checkliste

@netlify
Copy link

netlify bot commented Aug 13, 2023

👷 Deploy Preview for adesso-devblog-pr-preview processing.

Name Link
🔨 Latest commit ed08efa
🔍 Latest deploy log https://app.netlify.com/sites/adesso-devblog-pr-preview/deploys/652e69db8603dd0008d1c1be

@eleazar-araujo
Copy link
Contributor Author

eleazar-araujo commented Aug 13, 2023

Hallo @jo2 . Ich verstehe leider nicht, warum der Build scheitert. Der Fehler scheint in einer Docker-Operation zu liegen
https://github.com/adessoSE/devblog/actions/runs/5846395095/job/15851545051?pr=281

@eleazar-araujo eleazar-araujo changed the title Add 2023-08-20-das-saga-muster-als-zutat-für-erfolgreiche-systeme.md … Blogbeitrag: Saga Muster als Zutat für erfolgreiche Systeme Aug 13, 2023
@jo2
Copy link
Collaborator

jo2 commented Aug 16, 2023

Der Build schlägt aktuell fehl, weil der aktuelle Commit aus dem adessoSE/devblog:master in deinem Fork nicht gefunden werden kann. Das funktioniert, wenn du einen Rebase ausführst.

Copy link
Collaborator

@jo2 jo2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ein ziemlich interessanter Blogbeitrag, ein paar Anmerkungen habe ich dir noch gemacht.

earaujo:
first_name: Eleazar Alejandro
last_name: Araujo
bio: "Eleazar arbeitet seit 2016 als Fullstack-Engineer und beschäftigt sich gerne mit JVM Sprachen und Architekturthemen."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bio: "Eleazar arbeitet seit 2016 als Fullstack-Engineer und beschäftigt sich gerne mit JVM Sprachen und Architekturthemen."
bio: "Eleazar arbeitet seit 2016 als Fullstack Engineer und beschäftigt sich gerne mit JVM-Sprachen und Architekturthemen."

categories: [Softwareentwicklung] # Pflichtfeld. Maximal eine der angegebenen Kategorien verwenden.
tags: [Microservices, Resilience, Saga] # Bitte auf Großschreibung achten.
---
Um eine Microservices-Architektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Um eine Microservices-Architektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.
Um eine Microservicearchitektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.

tags: [Microservices, Resilience, Saga] # Bitte auf Großschreibung achten.
---
Um eine Microservices-Architektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.
Unter anderem: Wie gehen wir mit Transaktionalität um?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Unter anderem: Wie gehen wir mit Transaktionalität um?
Dazu gehört unter anderem: Wie gehen wir mit Transaktionalität um?

---
Um eine Microservices-Architektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.
Unter anderem: Wie gehen wir mit Transaktionalität um?
Wie soll das System reagieren, wenn mitte in einem verteilten fachlichen Vorgang einen Fehler auftritt?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Wie soll das System reagieren, wenn mitte in einem verteilten fachlichen Vorgang einen Fehler auftritt?
Wie soll das System reagieren, wenn mitten in einem verteilten fachlichen Vorgang ein Fehler auftritt?

Um eine Microservices-Architektur erfolgreich umzusetzen, muss man unterschiedliche Aspekte berücksichtigen.
Unter anderem: Wie gehen wir mit Transaktionalität um?
Wie soll das System reagieren, wenn mitte in einem verteilten fachlichen Vorgang einen Fehler auftritt?
Für diese und andere Problemstellungen stehen Lösungen bereit.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Für diese und andere Problemstellungen stehen Lösungen bereit.
In diesem Artikel schauen wir uns Lösungen für diese Problemstellung an.


In unserem Küchebeispiel ist der Orchestrator der Chefkoch, der die Küchenstationen in einem Restaurant koordiniert.
Er gibt jedem Mitarbeitenden in der notwendigen Reihenfolge Anweisungen, über welche Zutaten zubereitet werden sollen.
Falls es Probleme bei einer der Schritte gibt, stellt er sicher, dass jede Beteiligte Maßnahmen einleitet, sodass am Ende die Küche in einem ordentlichen Zustand bleibt.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Falls es Probleme bei einer der Schritte gibt, stellt er sicher, dass jede Beteiligte Maßnahmen einleitet, sodass am Ende die Küche in einem ordentlichen Zustand bleibt.
Falls es Probleme bei einem der Schritte gibt, stellt er sicher, dass alle Beteiligten Maßnahmen einleiten, sodass am Ende die Küche in einem ordentlichen Zustand bleibt.

Er gibt jedem Mitarbeitenden in der notwendigen Reihenfolge Anweisungen, über welche Zutaten zubereitet werden sollen.
Falls es Probleme bei einer der Schritte gibt, stellt er sicher, dass jede Beteiligte Maßnahmen einleitet, sodass am Ende die Küche in einem ordentlichen Zustand bleibt.

## Fazit
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Fazit
# Fazit


Wir haben uns das Saga-Muster und dessen Hauptmerkmale angeschaut.
Ferner haben wir uns die Hauptarten von Sagas angeschaut: Choreografie und Orchestrierung.
Jeder hat Vorteile und Nachteile, die bei jedem Anwendungsfall abzuwägen sind.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Jeder hat Vorteile und Nachteile, die bei jedem Anwendungsfall abzuwägen sind.
Jede hat Vorteile und Nachteile, die bei jedem Anwendungsfall abzuwägen sind.

Wir haben uns das Saga-Muster und dessen Hauptmerkmale angeschaut.
Ferner haben wir uns die Hauptarten von Sagas angeschaut: Choreografie und Orchestrierung.
Jeder hat Vorteile und Nachteile, die bei jedem Anwendungsfall abzuwägen sind.
Dabei Anzahl und Dauer der Arbeitsschritte, sowie der Bedarf an Status-tracking entscheidende Faktoren.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Dabei Anzahl und Dauer der Arbeitsschritte, sowie der Bedarf an Status-tracking entscheidende Faktoren.
Bei der Auswahl sind die Anzahl und Dauer der Arbeitsschritte sowie der Bedarf an Status-Tracking entscheidende Faktoren.

Jeder hat Vorteile und Nachteile, die bei jedem Anwendungsfall abzuwägen sind.
Dabei Anzahl und Dauer der Arbeitsschritte, sowie der Bedarf an Status-tracking entscheidende Faktoren.

Wenn du also das nächste Mal einen Kuchen backst oder versuchst, eine komplexe, verteilte Geschäftstransaktion in einer Microservice-Architektur abzuschließen, denkt an das Saga-Muster als Geheimzutat für deinen Erfolg!
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Wenn du also das nächste Mal einen Kuchen backst oder versuchst, eine komplexe, verteilte Geschäftstransaktion in einer Microservice-Architektur abzuschließen, denkt an das Saga-Muster als Geheimzutat für deinen Erfolg!
Wenn du also das nächste Mal einen Kuchen backst oder versuchst, eine komplexe, verteilte Geschäftstransaktion in einer Microservicearchitektur abzuschließen, denk an das Saga-Muster als Geheimzutat für deinen Erfolg!

@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@eleazar-araujo
Copy link
Contributor Author

Danke für das Feedback @jo2 . Könntest du es bitte wieder reviewen?

@jo2
Copy link
Collaborator

jo2 commented Aug 29, 2023

@eleazar-araujo es sind noch einige Kommentare offen, sieh dir die bitte nochmal an.

@jo2 jo2 self-assigned this Aug 29, 2023
@jo2 jo2 added blogpost New blogpost for the adesso-devblog waiting-for-author labels Aug 29, 2023
@eleazar-araujo eleazar-araujo force-pushed the earaujo-sagga-muster branch 2 times, most recently from 623f0c3 to bf6cfb9 Compare September 9, 2023 08:42
@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

1 similar comment
@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@eleazar-araujo
Copy link
Contributor Author

Jetzt sollte alles erledigt sein. Vielen Dank @jo2

Copy link
Collaborator

@jo2 jo2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ein paar Sachen sind noch drin, schau bitte nochmal drüber.

Wie soll das System reagieren, wenn mitten in einem verteilten fachlichen Vorgang ein Fehler auftritt?
In diesem Artikel schauen wir uns Lösungen für diese Problemstellung an.

# Transaktionalität in Microservicearchitekture
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Transaktionalität in Microservicearchitekture
# Transaktionalität in Microservicearchitekturen

Und um alles noch schwieriger zu machen, spricht auch noch jeder Koch eine andere Sprache.
Dann wird das Kuchenbacken zu einem Albtraum.

Diese Analogie steht für das Problem, mit dem die Microservicearchitektur bei der Implementierung komplexer Geschäftstransaktionen konfrontiert werden kann.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Diese Analogie steht für das Problem, mit dem die Microservicearchitektur bei der Implementierung komplexer Geschäftstransaktionen konfrontiert werden kann.
Diese Analogie steht für das Problem, mit dem eine Microservicearchitektur bei der Implementierung komplexer Geschäftstransaktionen konfrontiert werden kann.


# Was ist das Saga-Muster?

Das Saga-Muster ist ein Entwurfsmuster, das für die Implementierung komplexer Geschäftstransaktionen in der Microservicearchitektur verwendet wird.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Das Saga-Muster ist ein Entwurfsmuster, das für die Implementierung komplexer Geschäftstransaktionen in der Microservicearchitektur verwendet wird.
Das Saga-Muster ist ein Entwurfsmuster, das für die Implementierung komplexer Geschäftstransaktionen in Microservicearchitekturen verwendet wird.

Die Microservices, die Teil einer Saga sind, interagieren und steuern selbstständig den gesamten Ablauf.

Eine Choreografie-Saga kann man mit einem einfachen Kochabend mit Freunden vergleichen.
Der Anzahl der Beteiligten ist überschaubar und die Schritte zur Zubereitung der Zutaten einfach.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Der Anzahl der Beteiligten ist überschaubar und die Schritte zur Zubereitung der Zutaten einfach.
Der Anzahl der Beteiligten ist überschaubar und die Schritte zur Zubereitung der Zutaten sind einfach.

Dies setzt voraus, dass sich die einzelnen Microservices koordinieren können, um den Transaktionszustand aufrechtzuerhalten.
Es besteht kein zentraler Kontrollpunkt, der die Ausführung überwacht.

Diese Art von Saga ist in der Regel einfach umzusetzen und eignet sich gut für kurzlaufenden Transaktionen mit wenigen Schritten, wo kein Tracing notwendig ist und es keinen Bedarf gibt, den Transaktionsstatus zu tracken.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Diese Art von Saga ist in der Regel einfach umzusetzen und eignet sich gut für kurzlaufenden Transaktionen mit wenigen Schritten, wo kein Tracing notwendig ist und es keinen Bedarf gibt, den Transaktionsstatus zu tracken.
Diese Art von Saga ist in der Regel einfach umzusetzen und eignet sich gut für kurzlaufende Transaktionen mit wenigen Schritten, wo kein Tracing notwendig ist und es keinen Bedarf gibt, den Transaktionsstatus zu tracken.

Für diese Herausforderung kommt die andere Art von Sagas infrage:


### Orchestrator
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Orchestrator
## Orchestrator

_Beispiel einer Orchestrator-Saga für einen Bestellvorgang_.


Im obigen Diagramm können wir den schon benannte Bestellvorgang einsehen, diesmal aber als Orchestrator-Saga:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Im obigen Diagramm können wir den schon benannte Bestellvorgang einsehen, diesmal aber als Orchestrator-Saga:
Im obigen Diagramm ist der schon bekannten Bestellvorgang abgebildet, diesmal aber als Orchestrator-Saga:


# Fazit

Wir haben uns das Saga-Muster und dessen Hauptmerkmale angeschaut.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Wir haben uns das Saga-Muster und dessen Hauptmerkmale angeschaut.
Wir haben uns das Saga-Muster und dessen Hauptmerkmale kennengelernt.

# Fazit

Wir haben uns das Saga-Muster und dessen Hauptmerkmale angeschaut.
Ferner haben wir uns die Hauptarten von Sagas angeschaut: Choreografie und Orchestrierung.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ferner haben wir uns die Hauptarten von Sagas angeschaut: Choreografie und Orchestrierung.
Ferner haben wir uns mit den Hauptarten von Sagas beschäftigt: Choreografie und Orchestrierung.

@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@eleazar-araujo eleazar-araujo requested a review from jo2 September 25, 2023 12:11
@jo2
Copy link
Collaborator

jo2 commented Sep 25, 2023

Der Blogpost passt soweit. Möchtest du dein hier hinterlegtes Foto auch im offiziellen Blog verwenden? Führe bitte noch einen Rebase auf den adessoSE/devblog:master aus, danach kann dein Artikel veröffentlicht werden.

jo2
jo2 previously approved these changes Sep 25, 2023
@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@eleazar-araujo
Copy link
Contributor Author

Danke fürs Review @jo2. Mein hinterlegtes Foto würde ich gerne im offiziellen Blog verwenden. Es ist im assets/images/avatars/earaujo.png

@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@eleazar-araujo
Copy link
Contributor Author

Hallo @jo2 . Können wir das schon mergen?

@jo2
Copy link
Collaborator

jo2 commented Sep 29, 2023

@eleazar-araujo leider noch nicht, da das dein erster Blogbeitrag ist, bist du noch nicht als Autor im System hinterlegt. Ich hatte das am Mittwoch beauftragt, bisher aber noch keine Rückmeldung erhalten. Ich habe da jetzt nochmal nachgehakt.

@eleazar-araujo
Copy link
Contributor Author

Hallo @jo2 . Gibt es immer noch keine Rückmeldung?

@jo2
Copy link
Collaborator

jo2 commented Oct 17, 2023

Hier gibt es leider noch kein Update. Ich habe jetzt nochmal jemanden vom Redaktionsteam direkt angeschrieben, vielleicht gibt es da eher eine Antwort..

@jekyll2cms
Copy link
Collaborator

Blogpost seems formally correct and ready for review!

@jo2 jo2 merged commit fa6e66a into adessoSE:master Oct 17, 2023
4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
blogpost New blogpost for the adesso-devblog waiting-for-author
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants