NServiceBus icon indicating copy to clipboard operation
NServiceBus copied to clipboard

Saga and outbox persistence that uses Entity Framework

Open ramonsmits opened this issue 1 year ago • 0 comments

Describe the feature.

Currently https://github.com/Particular/NServiceBus.NHibernate and https://github.com/Particular/NServiceBus.Persistence.Sql exist that can store sagastate in various database types.

Supporting Entity Framework (EF) to persist sagas benefits many users that want to have state serialized into a table structure like NHibernate as some users do not like NServiceBus.Persistence.Sql using JSON BLOB's for saga instance state and NHibernate is not outdated and very slow and popular on .NET.

Advantages

  • EF is very actively maintained and performance is very good compared to NHibernate
  • Schema (tables structure) is preferred over schema less (JSON BLOB) when storing data in a relation database.
  • EF supports data/schema migrations out of the box making is much easier to create and update. Especially in an environment that already is using EF. (NHibernate does not)
  • Custom saga finders based on EF are easy to create
  • As EF uses regular tables its much easier to replicate data with ETL to for example a datawarehouse
  • Much easier for operators/administrators to query tables when there are production issues than the JSON BLOB in SQLP

ramonsmits avatar May 09 '24 11:05 ramonsmits