temporalio / temporalio/samples-java

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

Ouverte
#770 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.