-
Notifications
You must be signed in to change notification settings - Fork 226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Send one-way commands/notifications to saga participants #76
Comments
cer
changed the title
See one-way commands/notifications to saga participants
Send one-way commands/notifications to saga participants
Aug 8, 2022
Proposed design consists of additional Saga DSL methods:
public class NotificationBasedCreateOrderSaga implements SimpleSaga<NotificationBasedCreateOrderSagaData> {
private final SagaDefinition<NotificationBasedCreateOrderSagaData> sagaDefinition;
public NotificationBasedCreateOrderSaga(NotificationBasedCreateOrderSagaSteps steps) {
this.sagaDefinition =
step()
.invokeLocal(steps::createOrder)
.withCompensation(steps::rejectOrder)
.step()
.invokeParticipant(NotificationBasedCreateOrderSagaData::reserveCredit)
.withCompensation(NotificationBasedCreateOrderSagaData::releaseCredit)
.step()
.invokeParticipant(NotificationBasedCreateOrderSagaData::reserveInventory)
.withCompensationNotification(NotificationBasedCreateOrderSagaData::releaseInventory)
.step()
.invokeLocal(steps::approveOrder)
.step()
.notifyParticipant(NotificationBasedCreateOrderSagaData::fulfillOrder)
.build();
} |
Various remaining TODOs - see
|
cer
added a commit
that referenced
this issue
Aug 9, 2022
Extracted framework independent eventuate-tram-sagas-unit-testing-support from eventuate-tram-sagas-testing-support
cer
added a commit
that referenced
this issue
Aug 11, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Requires: eventuate-tram/eventuate-tram-core#174
Motivation is the concurrent execution of compensating transactions and retriable transactions, which are saga steps that by definition cannot fail.
The text was updated successfully, but these errors were encountered: