In preparation for a talk I'm giving at DOSUG I'm going to post my thoughts as they develop. After going through a dry run, it struck me that I talked too much about the nuts and bolts of Miranda, and not enough about how it work generally. Therefore, I am redoing the "How it works" section to cover these issues better.
Miranda works by making the web service behind it appear to be more reliable than they are. It does this by sitting in front of the web service and accept Events on its behalf. Miranda itself is a distributed, fault-tolerant system and is very reliable.
Later, when the service is ready, Miranda delivers those events. Thus the underlying service does not have to be functional all the time, Miranda will accept Events for it while it is down. If an event causes the service to crash, Miranda can put the Event aside after the problem is fixed.
Miranda stores Events on a cluster of systems. If one node fails, the other nodes have a copy of the Event. Nodes take responsibility for delivering Events during an "Auction". If a node that is tasked with delivering events to a service goes down, the Subscription is Auctioned off again to another node.