Skip to content

This project is an implementation of a distributed logging system. It focuses on building a robust architecture to manage persistent event storage, featuring components such as logs, segments, indices, stores, and records. The system emphasizes efficient data handling, service discovery, and high scalability.

Notifications You must be signed in to change notification settings

halladj/dis-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Logging System

Overview

This repository contains the implementation of a distributed logging system designed to efficiently manage and store log entries. The system is modular and built using best practices for performance, reliability, and scalability.

Features

  • Log Management: Handles multiple segments for efficient data storage.
  • Indexing: Maintains an index for quick retrieval of log entries.
  • Storage: Implements a store to persist records efficiently.
  • Data Retrieval: Provides methods to append and read log entries.

Logs Architecture

The architecture of the distributed logging system consists of the following components:

  • Log: The main entry point that manages segments.
  • Segment: Responsible for storing records and maintaining an index.
  • Index: Maps offsets to positions within the store for quick access.
  • Store: The persistent storage layer that holds the actual log entries.
  • Record: Represents a single log entry, containing the value and its offset.

Class Diagram

Getting Started

Prerequisites

  • Go 1.13+
  • Kubernetes 1.16+

Installation

  1. Clone the repository:
    git clone <repository-url>
    cd <repository-directory>

2 Build the application:

// not deployed to GCP yet !!

must also mention that i used surf for service discovery....

Contributing

  • Contributions are welcome! Please open an issue or submit a pull request.

License

  • This project is licensed under the MIT License. See the LICENSE file for details.

About

This project is an implementation of a distributed logging system. It focuses on building a robust architecture to manage persistent event storage, featuring components such as logs, segments, indices, stores, and records. The system emphasizes efficient data handling, service discovery, and high scalability.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published