Arch Forum 2023-06-22¶
Participants: Johan D, Liangxiong, Shoaib, Thani and Victor
Agenda¶
- Azure Service Bus & MassTransit
Notes¶
Azure Service Bus (ASB) & MassTransit: Topic of the day was ASB and the investigation Shoaib had done. The investigation is tracked in https://majority.atlassian.net/browse/MIB-8087 and https://majority.atlassian.net/browse/MIB-8088
MassTransit¶
- Seems like it is possible to do, MassTransit can replace our implementation transparently for end users.
- MT by default wraps the message in an envelope in the body, but this can be overridden to match our format.
- Requires quite a bit of wrapper code to wire up the DI.
- In order to hide all MassTransit contracts from users, we either need to use Castle Proxy or introduce source generator to wrap the consumers.
- Could be a good test of source generation, since we would like to move away from Castle Proxy to compile time source generation anyway.
- It would still be backwards compatible, e.g. messages on the ASB would stay the same format. Meaning We can deploy a single sender, or a single receiver at a time.
- Using MassTransit should make it easier to migrate over to RabbitMQ in the future (however, still quite a bit of the DI wiring would need to be rewritten)
- Deadlettering needs adjustment, Handlers cannot do it themselves, instead handled by MT middleware. But this should be fine.
New Azure Service Bus library:¶
- Very straight forward to update
Additional notes¶
A followup meeting were held on 2023-06-26 where Shoiab had continued further in the investigation, and also Shakib and Zak could join. There we decided it's best to go the MT way. This work is tracked in https://majority.atlassian.net/browse/MIB-8148