This is an implementation of Saga Choreography and Saga Orchestration patterns using RabbitMQ and MassTransit's State Machine.
- MassTransit
- RabbitMQ
- SQLite
To start the infrastructure via Docker, type the following command at the solution directory:
docker compose up -d
Apply the migrations for each of the following projects: Saga.Choreography.Rockets
, Saga.Choreography.Launches
, Saga.Choreography.Monitoring
.
Run above services.
Make a POST
request to the Rockets service missions/new
endpoint. Example:
{
"name": "Voyager 1",
"destination": "Jupiter"
}
Apply the migrations for each of the following projects: Saga.Orchestration.Rockets
, Saga.Orchestration.Launches
, Saga.Orchestration.Monitoring
, Saga.Orchestration.Orchestrator
.
Run above services.
Make a POST
request to the Rockets service missions/new
endpoint. Example:
{
"name": "Voyager 2",
"destination": "Uranus"
}