We wish to implement an outbox pattern at the producer level to ensure delivery to the Azure Service Bus, i.e. hold the message in the outbox only till the service bus is unavailable or down and send it as soon as it is available.
The mandate from the architect is to use an in-memory outbox with MassTransit as they do not wish to have a database in the application. From all the documentation that we can read, MassTransit supports in-memory with Saga and needs a consumer of some sort whereas I do not have any use case of Saga or anything here.
Greatly appreciate any help or advice.
The in-memory outbox only works with a message consumer (consumer, saga, or routing slip activity). There is no such thing as an in-memory bus outbox – only the transactional outbox can be used in that scenario.
What you seem to be referring to isn't really and outbox in the pattern sense of the word, but more of a store-and-forward approach to message delivery. Which, again, the bus outbox of the transactional outbox is able to do very well since messages are stored in the database transactionally and delivered only when the broker is available.