4 ms·
So what happens when your push based system has a network outage? A retry? Stall the system? Reboot? queue the operation? what? I think doing "event driven" wi
by weq 10y ago
So what happens when your push based system has a network outage? A retry? Stall the system? Reboot? queue the operation? what?
I think doing "event driven" without an event log for critical system functionality is probably the anti-pattern you are describing here. with my event log, worst case scenario is i need to reprocess all the messages in my system to recover from all of the above.
That said, most of the things u mentioned can be mitigated by a decent event bus with a competing consumer.
ie. isolate your critical components (write model) into small succinct peices that use highly reliable message delivery techniques. once committed, broadcast to other queues where delivery isnt that critical.
Or you can just level up and go
https://martinfowler.com/articles/lmax.html https://martinfowler.com/articles/lmax.html
- justicezyx 10y agoIn a network outage, fail the request and let user/caller know. All the options you mentioned are doing unwarranted smart work without context.
- btilly 10y agoAn event based system with a reliable event log becomes something that you can do a resync on. Which makes it into a pull based system in time of need. Alternately you can have some sort of confirmation protocol. It is easy to go too far, but the kind of confirmation/resend logic that turns UDP into TCP has very much demonstrated its value in practice.