Prasanth Janardhanan

Implementing Saga Pattern with Temporal in Go Microservices: Journey Through Distributed Transactions

alt text

Picture this: You’re standing in line at your favorite coffee shop. You order a complex drink (let’s call it the “Distributed Mocha Supreme”), and the barista starts a carefully choreographed dance between the espresso machine, milk steamer, and various syrup stations. Everything’s going great until—oops!—they’re out of whipped cream. Now what? Do they throw away everything they’ve made so far? Ask you to pay for a half-finished drink? Call over three managers for approval? Welcome to the world of distributed transactions in microservices!

Continue Reading →

The Evolution of Concurrency Patterns in Go: From Goroutines to Advanced Worker Pools

concurrent go out of control

Remember when you first dipped your toes into the world of concurrent programming? If you’re like me, it probably felt like trying to juggle while riding a unicycle. But here’s the thing: in today’s tech landscape, mastering concurrency isn’t just a cool party trick—it’s becoming as essential as knowing how to loop.

Enter Go (or Golang, if you’re feeling fancy). This language burst onto the scene in 2009 with a battle cry of “concurrency made easy!” And you know what? For the most part, it delivered. Go’s goroutines and channels made concurrent programming feel less like rocket science and more like, well, actual programming.

Continue Reading →