• 19 May 2024 »
  • 24 Mar 2022 » Resiliency Matrix for Cloud Native applications
    Resiliency is one of the key tenet of a cloud native application. It is very much a necessity to be resilient to handle variety of failures.

This is an outcome of the lessons learnt while building the cloud native apps. This is an effort to put together some guidelines for capturing resiliency elements into features upfront during the development cycle. Something that would allow us to ask the right questions during the refinement and build cycle. We are already doing many items listed below, just wanted to streamline it and make sure it is easier to use and enforce.
  • 12 Jul 2021 » Multi Region/Multi cluster Cache replication
    All enterprise platforms use cache in one or the other form to improve the SLAs. Starting from a cold cache vs a hot cache can have a significant impact on the the user experience and the API response times. This post tries to highlight some of the key challenges in building a multi region or multi cluster cache replication strategies. We will use Redis cache as a reference to discuss the design options.
  • 24 Mar 2021 » Distributed Domain Transactions in API services and Event consumers
    Most enterprise services will have this common problem of interacting with multiple services to achieve a business outcome. The common problem that tags along side SOA/Microservice architecture is distributed transaction management. In this post we will try understand the problem, formalise it and then come up with approaches to solve the same.
  • 01 Mar 2019 » Understanding IO in detail [part 1]!
    This post is about uncovering the hidden details of IO operation. This also tries to give you an intuition about why IO in general is an extremely important part of building high performance applications.We will primarily focus on detailing how hardware and software work in harmony to make IO possible and efficient.
  • 30 Jul 2018 » Consensus in Distributed systems - Part 1
    This post highlights the challenges in achieving consensus in a distributed environment. This post describes many use cases and variations of consensus.Also highlights the safety and liveliness properties w.r.t distributed consensus. Later various consensus protocols are discussed in detail along with their shortcomings.
  • 15 Mar 2017 » Dissecting the RNN[Recurrent Neural Network]
    The RNNs are magical in a way they work. This post dissects the internal structure of the neural computation graph of RNNs and tries to give an intuition of how neurons tune themselves to understand sequences in data.
  • 30 Oct 2016 » Distributed Dependency Resolution
    Graph building is one of the key aspect of many domains. This post describes one of the solution to build these graph in a completely distributed way.