Geek Logbook

Tech sea log book

Understanding Distributed System – Maintainability

Introduction It’s widely recognized that the bulk of software costs arise after its initial development in maintenance tasks like bug fixes, feature additions, and day-to-day operation. Therefore, it’s crucial to build systems that are easy to modify, extend, and operate, ensuring they remain maintainable over time. Robust testing, including unit, integration, and end-to-end tests, is

Understanding Distributed System – Resiliency

Introduction Chapter 24 – Common Failure Causes Chapter 25 – Redundancy Redundancy, the replication of functionality or state, is a critical defense against failures. When replicated over multiple nodes, functionality or state can be maintained even if a node fails. This redundancy not only enhances availability but also enables horizontal scaling, as discussed in Part

Understanding Distributed System – Scalability

Introduction Scaling an application involves maintaining performance as load increases. The long-term solution for increasing capacity is to architect for horizontal scalability. In this section, we’ll explore scaling a simple CRUD web application called Cruder, consisting of a single-page JavaScript application communicating with an application server via a RESTful HTTP API. The server uses local

Understanding Distributed System – Coordination

Introduction Our ultimate goal is to build a distributed application consisting of a group of processes that gives its users the illusion they are interacting with one coherent node. While achieving a perfect illusion may not always be possible or desirable, some degree of coordination is always needed to build a distributed application. Chapter 6

Understanding Distributed System – Communication

Part I – Communication Introduction Interprocess communication (IPC) is fundamental to distributed systems, enabling processes to exchange data over networks. This communication relies on agreed-upon rules, which are specified by network protocols. Protocol Stack Network protocols are organized in a stack, with each layer building on the abstraction provided by the layer below. Lower layers

Understanding Distributed Systems – Introduction

Chapter 1: Introduction In the realm of modern technology, the need for distributed systems has become increasingly apparent. But why invest time and resources in building such intricate infrastructures? Chapter 1 sets the stage by addressing this fundamental question—Why do we bother building distributed systems in the first place? 1.1 The Imperative of High Availability