Accelerating developer velocity: Intuit’s AppFabric platform

Deepa Soundararajan
Intuit Engineering
Published in
5 min readMar 22, 2021

Intuit products, including TurboTax, QuickBooks and Mint, are used by millions of people in their day-to-day lives, at work, and at home. By addressing the most pressing financial challenges facing our consumer, small business, and self-employed customers, our company’s mission is to power prosperity around the world.

Over many years, the release of awesome new capabilities and features across product lines led to exponential application growth, prompting us to explore ways to scale them. With a goal to accelerate developer velocity and streamline delivery of customer benefits, we embarked on an initiative to create a unified AppFabric (application fabric) platform for all the web applications at Intuit to:

  • Shorten release cycles to deliver delight to users faster.
  • Stitch seams between products so a customer navigating from one product to the other, does not have starkly different experiences.
  • Promote reuse of experiences to share across the products and reduce the build of clones.
  • Deliver complete platforms with out-of-the-box capabilities for operational excellence, developer productivity, and elimination of duplicate work.

Let’s take a quick look at Intuit’s journey and learnings from our platform evolution.

As a first step, we started with QuickBooks Online and split our front-end from the back-end systems. To deliver customer value faster, we moved to a micro front-end architecture (which was neither a trend nor an industry best practice back in 2015). At the same time, we set out to revamp our front-end tech stack to React.

In a little more than a year, we were able to build features and experiences as independently-releasable units called plugins in the front end. Hello, on-demand releases! QuickBooks today hosts 250+ plugins on this architecture, delivering innovation to our customers rapidly.

By 2018, the number of applications on our AppFabric platform had scaled significantly, making it possible for Intuit product development teams to test, experiment, quickly iterate — and develop reusable plugins — to deliver new product features faster to Intuit QuickBooks Online customers.

In 2020, both TurboTax and QuickBooks deprecated their existing hosting platforms and moved to the shared infrastructure. With 100 percent of their user traffic coming through the shared infrastructure, we needed to focus on ultra scalability to serve hundreds of thousands of concurrent users in our ecosystem. Built-in high availability patterns, app isolation for resilience, and fault tolerance were some of the key architectural enhancements we made to support this effort.

The key benefits of the platform are:

  • Accelerating developer productivity through faster and independent daily-to-weekly releases of hundreds of plugins, as compared to earlier multi-week cycles for feature teams in products like QuickBooks, TurboTax, and Mint
  • Stitching the seams between products with plugins built once and reused across applications, for a seamless customer experience
  • Sharing capabilities and best practices across a common platform with a single set of capabilities (e.g., observability, experimentation, and analytics available out-of-the-box for all applications.

Within just one year, we’ve seen a 4X growth in web applications created and hosted on our AppFabric platform. By setting up an ecosystem for front-end developers across Intuit to continuously improve the platform, we’ve also seen a 5X increase in inner source contributions.

Sharing some key learnings from our journey:

Understanding user requirements is key

Each of our flagship products has a unique set of requirements. Understanding each product’s requirements, and separating what is product-specific and what is product-agnostic is key. Allowing for application customizations becomes an implicit architectural requirement.

Resiliency and scale are non-negotiable

During peak traffic days, there is no room for our services to be down. We built our platform on the Intuit Kubernetes System which provided us with the necessary automated scaling and isolation. We also built in a failover mechanism with content delivery network (CDN) cache to ensure 100 percent availability. Running peak readiness checks and weekly load tests with partner teams helps us ensure that the platform holds steady.

Tooling, tooling, tooling

Tooling was critical to scaling the system. One such tool we built was a command-line interface (CLI) mechanism for plugins to easily perform standard operations on the platform. It was key to give developers the scaffolding they needed — out of the box — to bring uniformity and enable the seamless introduction of new features to our ever-growing number of applications and plugins. We built these tools as paved roads available through our internal developer site.

Performance supersedes all

At the end of the day, performance is key to customer delight. We measure our top percentile every step of the way on key workflows. We’ve built guardrails to check our library sizes, used latency-based routing, and incorporated features like chunking and progressive/lazy load parts of the system, on-demand for each application. TurboTax saw a significant improvement in its first-page load performance this year, which is a huge win for Intuit’s consumers.

Training and collaboration

We host on-boarding and training sessions for new employees and have built self-serve documentation to help us scale. With more than 600 plugins and 200 web apps, inner sourcing and contributions to the platform from across the company are important. Our request for comments (RFC) process, which was inspired and modeled after the React RFC process, helped bring in many improvements from over 100+ contributors to this platform.

What’s next for us?

We have learned so much — and the journey continues! We’re planning to enable our static sites, continuously improve mobile user experiences, and deliver seamless integrations between all Intuit products and services. We want to continue to power prosperity around the world through our AppFabric platform, in true Intuit style.

Feel free to drop a comment or question here. And, stay tuned for deeper dives into our architecture evolution in future blogs!

--

--