We hear over and over again that customers are rebuilding their software stack with Temporal, often starting by augmenting parts of their stack and sometimes replacing it all. It gives an interesting comparison - you can measure the development velocity before/after Temporal.
We were joined by Jon Morehouse and Jordan Acosta from Nuon for a webinar last week to share how they completely rebuilt their API using Temporal, the best practices for long-lived workflows, and how Temporal is helpful for startups.
Nuon is an infrastructure company that enables software companies to create a BYOC (Bring Your Own Cloud) version of their app. Software companies connect existing tooling to create a fully managed version of their app that runs in the customer's cloud account.
Nuon started with two teams- one working on the external-facing API and the other working on infrastructure automation for CRUD software deployments. They had a three-person team building the API using traditional event-sourcing patterns. Nuon was using Temporal for the infrastructure automation and had one person working on it. Infrastructure automation is a typical Temporal use case. The API was perpetually slow and buggy, whereas the infrastructure automation was reliable and fast to develop.
Watch the Hashicorp talk on infrastructure automation.
Nuon customers often had to step in when there was an error during deployment. They had to manually run commands to fix provisioning issues because the Nuon API was not declarative.
Nuon wondered if they could rebuild their API with Temporal.
Coming from a distributed systems background using event sourcing, Jordan was skeptical. Still, Jordan soon realized that Temporal Workflows could manage objects in the database and all interactions with those objects. Temporal Workflows could create a queue per object, allowing more efficient and scalable data management.
Nuon decided to dedicate a sprint to explore rebuilding the API with Temporal. In a single sprint, they replicated their existing API functionality entirely and, with a second sprint, took that code to production. In one developer month, they achieved what they’d failed to do in the 36 developer months they’d dedicated using event sourcing and queues.
Not only did they get significantly improved developer velocity, but they also got significant improvements in reliability and insights. The Temporal UI is now used to track the lifecycle of objects in the database, providing a detailed view of object creation, updates, and more.
Check out the webinar to learn how Temporal's event loop model simplifies programming by handling side effects and workflows asynchronously, allowing for a lightweight and scalable architecture. Here’s the accompanying blog post from Nuon with the code shared in the webinar.