A New Intuit Open Source Release: Trapheus

Social AC
Intuit Engineering
Published in
2 min readJun 12, 2020

Intuit engineers Rohit Kumar and Namita Devadas are excited to launch Trapheus. Trapheus automates restoration of Relational Database Services (RDS) database instances from snapshots into any dev, staging or production environments. It also supports snapshot-based restoration for individual RDS instances (such as Oracle, MySQL, MariaDB etc) as well as Amazon Aurora cluster instances with read replica support.

Trapheus logo

Trapheus is a tool for anyone who wants to automate restoration of RDS instances from snapshots, for recovery or other use cases. As part of Intuit’s QuickBooks Online Advanced team, project creators Rohit Kumar and Namita Devadas use this tool to enable daily restoration of the QuickBooks Online database from a golden snapshot inside their performance environment to maintain data consistency. Trapheus was picked up by other teams working on QuickBooks Online to do the same in their performance environments, which caused Rohit and Namita to start thinking about how this automation could apply to a variety of other use cases.

Trapheus is modeled as a state machine with the help of AWS step functions, which executes different steps to restore an existing database from a snapshot. It also supports snapshot-based restoration for individual RDS instances (such as Oracle, MySQL, MariaDB etc) as well as Amazon Aurora cluster instances with read replica support.

Chart showing Root State, RDS Instance & RDS Cluster
Concept to realization

Trapheus uses the following tech stack: Python, Python unit test framework, Boto3, AWS step functions, Lambdas, RDS Lambda layers.

State machine visualization — illustrated with boxes and lines
State Machine Visualization
Trapheus tech stack elements
Technology Stack

As a universal restoration solution, Trapheus can be applied to multiple use cases, including benchmarking and disaster recovery. Prior to Trapheus, no available concrete tooling ran with all RDS instances. When Rohit and Namita opened up Trapheus internally, it was quickly and easily adopted by other QuickBooks Online teams and microservices platforms. “We asked ourselves if this can be open sourced for the benefit of the community,” wrote Rohit and Namita.

--

--