Closed swistak35 closed 3 years ago
https://github.com/eventuate-tram/eventuate-tram-sagas https://github.com/eventuate-tram/eventuate-tram-sagas/tree/234fe3d58559c791053b9708013dd323a6bf850f/eventuate-tram-sagas-simple-dsl/src/main/java/io/eventuate/tram/sagas/simpledsl https://github.com/xstefank/eventuate-tram-service/blob/master/order-service/src/main/java/org/eventuate/saga/orderservice/saga/OrderSaga.java
https://docs.axoniq.io/reference-guide/implementing-domain-logic/complex-business-transactions/implementing-saga https://github.com/AxonFramework/Axon-trader/blob/master/orders/src/main/java/org/axonframework/samples/trader/orders/command/SellTradeManagerSaga.java https://github.com/abuijze/webinar-axon-bank/blob/master/src/main/java/org/axonframework/sample/axonbank/transfer/MoneyTransferSaga.java https://github.com/xstefank/axon-service/blob/master/order-service/src/main/java/org/learn/axonframework/orderservice/saga/OrderManagementSaga.java
http://jbossts.blogspot.com/2017/12/narayana-lra-implementation-of-saga.html http://jbossts.blogspot.com/2017/12/saga-implementations-comparison.html https://github.com/xstefank/lra-service
https://aws.amazon.com/step-functions/ https://docs.aws.amazon.com/step-functions/latest/dg/concepts-states.html https://aws.amazon.com/getting-started/tutorials/create-a-serverless-workflow-step-functions-lambda/?&trk=el_a131L000005unTnQAI&trkCampaign=pac_q2-04-2019_stepfunctions_tutorial_offering_link_2&sc_channel=el&sc_campaign=pac_q2-04-2019_stepfunctions_tutorial&sc_outcome=PaaS_Digital_Marketing&sc_geo=mult https://aws.amazon.com/getting-started/tutorials/handle-serverless-application-errors-step-functions-lambda/ https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html
Code for sagas is often quite similar, but there's always some boilerplate in maintaining sagas state. We could make some nice DSL for that, which would make long live transactions easier to make with event store. For starters, we could focus on saga which is: 1) always serialized (so there are no steps which can be done in parallel) 2) always sync
And go further from that.