rebus-org / Rebus.SqlServer

:bus: Microsoft SQL Server transport and persistence for Rebus
https://mookid.dk/category/rebus
Other
43 stars 44 forks source link

Outbox cleaner seems to not be implemented #108

Closed kimbirkelund closed 6 months ago

kimbirkelund commented 7 months ago

https://github.com/rebus-org/Rebus.SqlServer/blob/252881eb0e8728e644780e0174c1fa50fe09e193/Rebus.SqlServer/SqlServer/Outbox/OutboxForwarder.cs#L101-L104

Should this not be expanded upon? :-)

mookid8000 commented 6 months ago

Oh yeah, it probably should.

Although I have begun to think that the whole "outbox" concept ought to be a separate project and not baked into your service bus.

The main reason being that your outbox is much more closely tied to whatever type of persistence you are using, and probably also to which library you are using, than to your "service bus outgoing messages needs".

Building an outbox as a separate project would also make it possible to enlist other types of tasks as "stuff that must be done when my transaction has been safely committed", e.g. generating PDFs in, POSTing/PUTing to idempotent HTTP endpoints, etc.

Thoughts?

kimbirkelund commented 6 months ago

I saw the outbox feature more for ensuring database updates and outgoing messages were all or nothing.

The examples you're quoting I would think would be better handled by sending a message.

But we've stopped using the outbox feature for now anyway, so not really critical for us after all :-)

mookid8000 commented 6 months ago

Good 🙂 I'll probably publish an initial attempt at building a general outbox one of the following days. 😉