Address API Architecture


Secure, reliable address services with high availability and scalability

Architecture Overview

Addy's traffic flows though Cloudflare for security, performance and multi-region load balancing to replicated, geo-redundant, stateless address servers hosted on Microsoft Azure as shown below.


Address API Architecture
  • Local and global load balancing to reduce latency by load balancing traffic across multiple servers and regions
  • Health checks with fast failover to rapidly route visitors away from failures
  • Scale sets to automatically increase the number of address servers as demand increase

Scalability

Microsoft's Azure cloud services provide horizontal scalability per region, by running a minimum of 2 address servers, hosted in Australia East and Australia Southeast data centres.


High Availability

Cloudflare provides a safeguard from service disruptions with load balancing across two Azure regions, automatic failover, geographic routing and active health checks against addresses servers.

Scheduled: Load balancing enables Addy to update address data, apply API changes and patches without disrupting in-flight requests.

Unscheduled: In case a server goes down unexpectedly (e.g. due to hardware failure), health check monitors will detect the failure and route traffic to healthy servers.


Security

Addy uses Cloudflare for:

  • DDoS attack protection to maintain performance and availability
  • DNS reverse proxy to hide origin servers from end-users
  • Firewall rules to remedy against specific IP addresses and provide rate limiting when needed
  • Web Application Firewall to stop threats at the edge server

Addy uses Azure for:

  • Elastic scalability
  • Active performance and utilisation monitoring with alerts

Visit the API Key Best Practices page for information about API Key Security


Performance

Addy uses Cloudflare for:

  • Content Delivery Network (CDN) for fast, reliable JavaScript and CSS delivery
  • Web workers to cache requests and improve performance
  • Argo to route traffic across the fastest, most reliable paths

Addy uses Azure for:

  • High spec instances to load addresses into memory for fast address validation

Response Times

The response times against the address autocomplete API, searching for an address is shown below, which is under 50 milliseconds per request:

Address API Response Sample

Note: The response time can vary based on factors such as the Internet connection speed, proxies, ISP routing and more.

Over 40% of requests have a response time of 25 milliseconds or less. The average response time globally is around 125 milliseconds accross devices and Internet connections using Argo as shown below.


API Performance Argo

Metrics captured 7 July 2019.