How does an outbox work precisely? Is the MassTransit in memory-outbox a lot different from it’s transactional outbox? https://masstransit.io/documentation/patterns/in-memory-outbox