API High Availability
We understand that any third-party API you want to integrate with must be highly available, and we have invested in our infrastructure appropriately.
We run two independent data centres, each hosted by different providers with different network connections. Both data centres are live, and requests can be directed to either one depending on our load balancing.
Within each data centre we have a number of load balanced servers ready to process your requests.
With this setup we are resilient against failures at virtually every level, and we publish our current and historical status information. This is run from another location so we can keep you updated in the unlikely event of a failure impacting both our main data centres.
What you can do
In order to remove single points of failure, we publish the IP addresses of both our data centres in our webservices.data-8.co.uk
DNS entry. Should one site fail for any reason it will be quickly removed by our automatic monitoring systems. However, the client software may still have the IP address of the failed data centre in its DNS cache.
In order to get the best out of our HA architecture, the client application should automatically retry a request against all the available IP addresses until it gets a response. This is handled for you already by most client libraries, but if you are doing your own low-level networking code then you should take this into account.
You should always connect to our APIs using the webservices.data-8.co.uk
DNS name rather than an IP address. If a data centre is out of action for maintenance or because we have detected a failure, the associated IP address will be automatically removed from the DNS entry.
If you have a firewall that blocks outbound connections by default, you will need to add exceptions for port 443 traffic to each of the IP addresses listed on our status page. If we change the IP addresses we use in the future we will notify all clients of the change at least a month in advance to allow you to update your rules.