Software Architecture
Building robust distributed systems
Distributed systems give us tremendous scalability, but we need to build them right to reap the full benefits of this complicated architecture
Software Architecture
Distributed systems give us tremendous scalability, but we need to build them right to reap the full benefits of this complicated architecture
Programming
This is part 4 in a series of posts about asynchronous programming. The previous posts are linked at the end of this article. In the previous posts of this series on asynchronous programming, I have outlined two ways of writing asynchronous code and the underlying concepts of how this paradigm
Programming
Asynchronous Programming Part 3: Event based asynchronous programming
Programming
In my previous post, I described strategies for improving thread utilization in an IO-heavy environment. I will take a closer look at the thread-based asynchronous programming approach in this post. Whenever I say “blocked thread” in this discussion, I mean threads blocked/waiting on IO. This is the
Programming
One of the biggest overheads of adopting a micro-service architecture is the cost of inter-service communication. The overhead comes in many forms : the latency overhead in network calls, failure of deep call stacks and error handling in distributed states etc. But to my mind, one of the most