Clone this wiki locally
NSaga is a .Net library that helps you working with Sagas. The idea and concepts are similar to other saga implementations (NServiceBus, Rhino Service Bus, Mass Transit). But this implementation is a lot more simple - there is no bus and entry barrier is a lot lower (we hope!). You don't need to rebuild your application around using a bus to have a saga-or-two. Just look through the Quick Start guide and can brush up on other topics later when you have more questions.
In case you are wondering, "Saga" here means a long running transaction; some operation that can be complete in multiple steps. The simplest application of saga is a multi-step form on a web-site, where you don't really want to commit intermediate pages of the form, but only care when the form is complete. NSaga will persist intermediate data for you, and once the form is overall complete, saga can be pushed to your domain model. Actually this is how this project was started. There is a page dedicated to explaining the concept.
- Quick Start
- What is Saga and why? Concepts Explained
- Persistence and SQL storage
- Pipeline Hooks
- Integration with Other Dependency Injection Containers
Aim of this documentation is to answer your questions as quickly as possible, so I'll try to make it short and dry. Please feel free to create an issue to start a discussion. You can also reach me on Twitter: @trailmax.
There are a few samples available in GitHub repository