Chapter 6 - Calculating Tax Offline

Designing robust software means planning for every eventuality. To create a world-class product using Communications REST v2, you need to be prepared for when things go wrong - and one of the problems you may face is an outage. Fortunately, there are ways to write your software to gracefully handle an outage.

Types of connection issues:

  • Temporary Outage: Your connection has gone offline and you need to be able to process transactions for a short period of time until the connection is restored
  • Intermittent Connection: Your connection works most of the time, but its behavior is unpredictable and occasionally drops unexpectedly
  • Unable to Reach REST v2: Your connection is up, but you are unable to reach REST v2 because of a routing problem, a denial-of-service attack on an Internet service provider, or a temporary outage of REST v2

These types of outages have similar characteristics, so it’s straightforward to design a single process to handle all of them. Here is how we handle a broken connection:

  • Detect the dropped connection and prevent a crash
  • Retry the transaction
  • Recover data using the Commit/Uncommit functionality
  • Reconcile transactions after the outage

As a cloud-based Software-as-a-Service provider, Avalara understands the need to ensure that our services are available continuously and respond in a timely manner. Check out the Avalara Server Status page:

  • Subscribe to Updates for the services you use - see Avalara Communications for REST v2 status
  • Shows the current availability of all Avalara services
  • Displays graphs detailing current response times for a number of Avalara services
  • Provides a historical view of availability