Challenge
Stash’s engineering team had grown quickly and deployments of their Rails monolith required cross-team coordination. As a result, Stash had recently begun decomposing their monolith into Scala microservices. Auto-Stash was one of the early deliveries supported by the new microservices architecture. The transfer scheduling service had numerous edge cases that needed to be accommodated to ensure the launch was a success.
Solution
Independently Deployable Service
Stride engineers joined a small team responsible for the delivery of the recurring transfers service. The team delivered a Scala microservice that fit into Stash’s distributed systems infrastructure. The microservices could be independently deployed to facilitate future development and match Stash’s growing scale. Extensive unit testing ensured that the service would handle edge cases appropriately.
Decoupled Microservice Communication
The recurring transfers service stored new scheduling preferences data from Stash’s apps. On a regular basis, the scheduling service queried its datastore to find all of the transfers that needed to run. Then, it made these transfers available to another service that determined whether to publish these events to an SQS queue.
Impact
Stash’s new-at-the-time Auto-Stash feature enabled recurring deposits into Stash. In three months, we built a service allowing investors to schedule their recurring transfers. Upon launch, Auto-Stash helped Stash customers automate money movement and investing, ultimately helping millions of Americans more easily continue their journeys towards building long-term wealth.
This content is for informational purposes only. Investment advisory services offered by Stash Investments LLC, an SEC registered investment adviser.