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.
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)?
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.
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.