Temporal Applications

Lucas KatayamaLucas Katayama
2 min read

This is a series of posts based on Temporal SDK. I am going to explore how Temporal helps us achieve reliable systems with a built-in event sourcing and message broker environment.

Personal Context

I have some experience trying to build systems and platforms for startups. After a while, I got into the microservices world and then into the event-driven architectures. Every developer will find the same problems throughout those applications. One of them: RELIABILITY.

From timeouts and retries to maintaining a stable state inside a big platform with multiple databases and applications is a nightmare. And you probably had the chance to do a database update in the middle of the night to adjust some wrong data in your system. Not cool.

Jumping to the end. I helped develop an architecture to improve reliability and enforce a stable state inside a platform. From that, I learned a lot about choreography, orchestration, kafka, event-driven, sagas, compensations and a lot of other buzzwords.

But one thing comes to me. What if I need to do that again? Do I need to implement everything again? What happened to DRY (Don't Repeat Yourself)?

The Answer

So I needed something open-source that could help me achieve the same level of reliability and versatility while avoiding a vendor lock.

My answer: Temporal.

It doesn't have the best performance but I think for the most purposes it will fit.

Temporal Series

I am going to explore this new world by developing some very common systems using Temporal technologies and posting here.

Hope it becomes useful for you.

1
Subscribe to my newsletter

Read articles from Lucas Katayama directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Lucas Katayama
Lucas Katayama

I am a ​self-taught, quick learner and highly motivated Full Stack JavaScript Developer with more than 10 years of experience developing, designing and managing web and mobile applications in a startup environment, seeking to develop skills to ensure software quality and reliability. Also seeking other challenges and learn new technologies.