Most of messaging middleware frameworks like MassTransit, Rebus or NServiceBus implement one or more durable process types. MassTransit, for example, has a routing slip/saga (Courier) and process manager (Saga) patterns. The first one keeps the state in the message itself. The second one stores it in the database.

Alexey is the Event Sourcing and Domain-Driven Design enthusiast and promoter. He works as a Developer Advocate at Event Store and Chief Architect at ABAX.