Creating Sagas

Via CLI

naos saga create order-fulfillment

Via Configuration

sagas:
  order-fulfillment:
    steps:
      - name: reserve-inventory
        agent: inventory-reserve
        compensate: inventory-release
      - name: charge-payment
        agent: payment-charge
        compensate: payment-refund
      - name: ship-order
        agent: shipping-create
        compensate: shipping-cancel

Adding Steps

# Add step with compensation
naos saga add-step order-fulfillment reserve-inventory \
  --compensate release-inventory

naos saga add-step order-fulfillment charge-payment \
  --compensate refund-payment

naos saga add-step order-fulfillment ship-order \
  --compensate cancel-shipment

Verify

naos saga status order-fulfillment

# Saga: order-fulfillment
# Steps: 3
# Status: ready
#
# Steps:
#   1. reserve-inventory  (compensate: release-inventory)
#   2. charge-payment     (compensate: refund-payment)
#   3. ship-order         (compensate: cancel-shipment)