So far, we have been dealing with software systems contained in mostly a single node or a machine and were exploring issues within. The recent explosion of data and the computing needs to handle it have given rise to systems that have to span numerous nodes. With such systems, the scope and number of unhandled conditions and error cases skyrocket. Debugging these systems needs different toolboxes, designs, and paradigms. In this lesson, we’ll explore some of these concepts and issues.

What are distributed systems?

Early computer systems, both hardware and software, created in the mid-20th century, were monolithic and centralized in nature. They consisted of a single, colossal machine with an enormous amount of computing power that performed computations and processed data within the confines of a solitary unit. A single machine was endowed with enough power for the workload, or rather, the workloads that were running at that time could be served by a well-endowed monolithic computer system of that time. As computational needs grew, centralized systems faced constraints in scalability, reliability, and performance. These limitations encompassed technical, economic, and practical aspects.

Get hands-on with 1200+ tech skills courses.