To maximize Mio’s message delivery reliability, we’ve implemented a number of flow controls for messages entering and leaving the Mio subsystems. All message events received by Mio are delivered to front end servers distributed over multiple availability zones. For resilience, event payloads are immediately encrypted and placed in to a fault tolerant FIFO queue for processing by another fault tolerant, distributed back end system. Mio has distributed its infrastructure and processing logic in such a way that processing and data persistence is highly resilient to node or cluster outages.
Mio’s ability to deal with partner outages requires an inbound and outbound replay strategy. Partners such as Slack have an automatic replay mechanism where, should a Mio resource be unavailable, they will resend the event multiple times until successful. Mio’s outbound reliability is defined by our own queue replay strategy. Should a target partner platform be unavailable, Mio will retain the encrypted event in a queue, and will automatically attempt re-delivery based on a time based replay strategy. Permanent failures are reported internally and monitored for further investigation and escalation where necessary.
For more on Mio's security practices, visit https://m.io/security.