temporalio / temporalio/samples-java
[Sample Request] Payment workflow with idempotency, state machine, and compensation flow
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 258
- Forks
- 189
- Merge moyen
- 6 j 4 h
- PR mergées (30 j)
- 4
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par lire les exemples existants HelloSaga et MoneyTransfer afin de comprendre comment SAGA et la compensation sont démontrés. Définissez l’exemple autour des sept états demandés, de la gestion de l’idempotence, du backoff des retries et de la compensation des child-workflows ; il est terminé lorsqu’un workflow de paiement cohérent démontre les quatre comportements.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- backend, distributed-systems
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100