Skip to content

tani-gross/DistributedSystemsProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Systems Framework

This project implements a distributed system in Java designed to explore the core principles behind modern distributed infrastructure. The system demonstrates how independent processes can communicate, coordinate, and maintain consistent state across a network.

The goal of the project is to understand the fundamental challenges of distributed computing, including inter-node communication, state synchronization, and fault handling.


Overview

Distributed systems consist of multiple nodes that collaborate to perform tasks and manage shared state. This project implements the core infrastructure needed for nodes to communicate and coordinate with each other reliably.

Key capabilities include:

  • Inter-node communication
  • Distributed coordination
  • State synchronization
  • Fault handling
  • Message processing

The system provides a simplified environment for studying how real-world distributed services operate.


System Architecture

The system is composed of multiple independent nodes that communicate over the network. Each node can send and receive messages, process requests, and update shared state.

Client Request
      │
      ▼
+-------------+
|   Node A    |
+-------------+
      │
      ▼
+-------------+
|   Node B    |
+-------------+
      │
      ▼
+-------------+
|   Node C    |
+-------------+

Nodes coordinate through message passing and maintain consistent behavior through shared protocols and state management.


Key Concepts Implemented

This project explores several important distributed systems concepts:

  • Distributed communication
    Nodes communicate with each other through network-based message passing.

  • Coordination between processes
    Multiple nodes cooperate to maintain consistent distributed state.

  • State management
    Each node maintains local state while participating in a shared distributed system.

  • Fault tolerance considerations
    The system includes mechanisms to handle failures and unreliable network conditions.

  • Scalable architecture
    The design allows additional nodes to participate in the system without changing the core infrastructure.


Technologies

  • Java
  • Maven for build and dependency management
  • Standard Java networking and concurrency libraries

Running the Project

To build the project:

mvn compile

To run the application:

mvn exec:java

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors