Building Highly Performant and Scalable Applications with API-Driven Methodology

We recently had a new application approved that would provide an interface that tied multiple 3rd party vendors and a finance package into one application for end users.  The expectation for the application was fast growth over a short period of time, once in production.  Since it was not only a tool for end users but has potential uses for other businesses, white labeling was also a requirement.

As the team discussed architecture, we kept coming back to scalability.  Of all the applications we had built in the past, scalability wasn’t always in the forefront of the conversation and our existing tools seems too inadequate to offer the big three: performance, scalability and availability.

Recently we had successfully migrated a large PHP project over to AWS Elastic Beanstalk.  With several hundred users per day and growing steadily the shared hardware it was running on was beginning to create problems with performance.  After some modifications to support AWS ELB and going into production, we were impressed with the ease of scalability on the application. Auto-scaling took care of load issues due to unpredictable usage spikes and helped us reduce the overall cost of hosting to our customer.

Given the successful migration with the PHP project to AWS our team naturally turned to see what options were available on the AWS platform.  All of our previous projects consisted of web frameworks but we had been discussing investigating an API-driven development model and this was the chance.  The decision made and the API interface designed in OpenAPI, we started building out the back-end with serverless and AWS services.

Using an API-driven development model has decoupled the back and front ends of development, allowing the UI developers to define the most critical features that the API developers can implement.  This has allowed for a greater flexibility in handling unforeseen issues and shorter development cycles.