docs.particular.net
docs.particular.net copied to clipboard
Consider documenting "shared session/transaction" concept
Many transports either have shared transactions or even shared sessions when using Sagas or the Outbox. While there are some persistence specific parts, e.g.
- https://docs.particular.net/persistence/mongodb/#transactions-shared-transactions
- https://docs.particular.net/persistence/ravendb/#shared-session
- https://docs.particular.net/persistence/cosmosdb/transactions
- https://docs.particular.net/persistence/dynamodb/transactions
there might be value explaining the concept behind this, e.g. via a diagram like this:
sequenceDiagram
Queue->>NSB: ReceiveMessage
NSB->>Storage: Open session
NSB->>Application: Invoke message handler
Application->>Storage: Store business data
Application-->>NSB: message handler finished
NSB->>Storage: Store workflow/outbox data
NSB->>Storage: Commit transaction
NSB-xStorage: Close session
NSB-->>Queue: Ack message