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 into a fault tolerant FIFO queue for processing by the Mio multi-zone, 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 individual 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 redelivery mechanism where, should a Mio resource be unavailable, they will resend the event multiple times until successful or they will otherwise give up. 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 redelivery 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.