temporalio / temporalio/samples-java

[Sample Request] Payment workflow with idempotency, state machine, and compensation flow

Offen
#770 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
258
Forks
189
Ø Merge
6 T. 4 Std.
Gemergte PRs (30 T.)
4

Beschreibung

Hi, I'd like to contribute a new sample demonstrating a production-grade payment workflow pattern.

What it would cover:

  • 7-state payment state machine (INITIATED → VALIDATING → PROCESSING → COMPLETED / FAILED / CANCELLED / COMPENSATING)
  • Idempotency key deduplication before any state mutation
  • Exponential backoff with jitter on retries
  • Compensation flow as a child workflow on failure

Why it's useful:
The existing HelloSaga and MoneyTransfer samples demonstrate SAGA and basic compensation, but none show the full combination of idempotency + state machine transitions + compensation in a single cohesive example. This pattern is extremely common in fintech/payment backends.

Happy to submit a PR if this is welcome. Let me know if there's a preferred package structure or naming convention I should follow.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die vorhandenen HelloSaga- und MoneyTransfer-Beispiele zu lesen, um zu verstehen, wie SAGA und Kompensation demonstriert werden. Definiere das Beispiel anhand der angeforderten sieben Zustände, der Idempotenzbehandlung, des Retry-Backoffs und der Kompensation von Child-Workflows; es ist fertig, wenn ein zusammenhängender Zahlungs-Workflow alle vier Verhaltensweisen demonstriert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend, distributed-systems
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.