High availability is built and in testing: a failed node is taken over in seconds, and the calls on it carry on.
Yesterday we wrote that taking over from a failed server was the part that mattered most and was not built. It is now built, and we have watched it work on real machines.
What we did
Two Kahevo servers on Linux and two desk phones, one calling the other. Mid-call, we pulled the power on the server the call was on.
| What happened | When |
|---|---|
| Another server took its place | Within seconds |
| The call carried on, both people still talking | No redial, no ringing |
| One hung up, and both screens cleared | As normal |
What carries on
| Kind of call | After its server fails |
|---|---|
| Two people talking | Carried on |
| On hold | Still on hold |
| Parked | Still parked |
| Waiting in a queue | Still in line, in their place |
| In a menu | Back where they were |
Built to be looked after
Take a server out of service without cutting a call, upgrade them one at a time, and run a failure drill in the quiet hours.
The honest part
All of it is in testing. On real machines we have watched the takeover and calls between desk phones; the rest has run in our tests, not yet on hardware. A call from a browser or the app is still lost with its server. Until you have tried it yourself, keep a standby you trust.