Adds a streaming based attachment functionality to NServiceBus.
See Milestones for release notes.
Already a Patron? skip past this section
It is expected that all developers either become a Patron to use NServiceBusExtensions. Go to licensing FAQ
Support this project by becoming a Sponsor. The company avatar will show up here with a website link. The avatar will also be added to all GitHub repositories under the NServiceBusExtensions organization.
Thanks to all the backing developers. Support this project by becoming a patron.
- https://www.nuget.org/packages/NServiceBus.Attachments.FileShare
- https://www.nuget.org/packages/NServiceBus.Attachments.FileShare.Raw
- https://www.nuget.org/packages/NServiceBus.Attachments.Sql
- https://www.nuget.org/packages/NServiceBus.Attachments.Sql.Raw
This project delivers similar functionality to the DataBus. However it does have some different behavior:
With the DataBus all binary data is read every message received. This is irrespective of if the receiving endpoint requires that data. With NServiceBus.Attachments data is explicitly read on demand, so if data is not required there is no performance impact. NServiceBus.Attachments also supports processing all data items via an IAsyncEnumerable
.
With the DataBus all data items are placed into byte arrays. This means that memory needs to be allocated to store those arrays on either reading or writing. With NServiceBus.Attachments data can be streamed and processed in an async manner. This can significantly decrease the memory pressure on an endpoint.
With the DataBus the only interaction is via byte arrays. NServiceBus.Attachments supports reading and writing using streams, byte arrays, or string.
Gecko designed by Alex Podolsky from The Noun Project.