distributed-systems
5 Nov 2024
Understanding Nomad Clusters: Architecture, Configuration, and the Raft Algorithm
HashiCorp Nomad is a versatile workload orchestrator that enables organizations to deploy and manage applications across a distributed infrastructure. It is designed to handle a wide range of workloads, from long-running services to batch jobs, and is known for its simplicity, flexibility, and scalability. In this article, we will delve into the architecture of a Nomad cluster, discuss the recommended number of servers, explore the concept of failure domains, and provide an overview of the Raft consensus algorithm that underpins Nomad’s high availability.
21 Oct 2024
Building Simple Go Applications with RabbitMQ Communication
Introduction In the world of distributed systems, inter-process communication is vital for the functionality and reliability of applications. One effective way to achieve this is through message brokers. RabbitMQ, an open-source message broker that implements the Advanced Message Queuing Protocol (AMQP), is a popular choice for building scalable and decoupled systems. This article will walk you through building simple applications in Go that communicate with each other via RabbitMQ. Prerequisites Before we dive into the code, make sure you have the following:
20 Oct 2024
The History of Git: A Dive into Distributed Version Control
Git is a powerful version control system (VCS) that has transformed the way developers collaborate on code. Created out of necessity, its evolution speaks volumes about the changing landscape of software development. In this article, we’ll explore the history of Git, its key features, and how it compares with other version control systems. The Birth of Git The story of Git begins in 2005 when Linus Torvalds, the creator of the Linux kernel, sought a solution for maintaining the kernel’s source code amid the challenges posed by the then-existing version control systems.