Categorygithub.com/Tarunshrma/prolog
module
0.0.0-20250129051026-c21d9f9a02a8
Repository: https://github.com/tarunshrma/prolog.git
Documentation: pkg.go.dev

# README

Distributed Event Streaming Service

Project Logo or Image

This repository contains the source code and examples for building a distributed event streaming service using Go, inspired by the concepts and practices from the book "Distributed Services with Go" by Travis Jeffery.

About

The project aims to implement a scalable and reliable event streaming service using Go. It follows the principles and techniques discussed in the book to create a distributed system that handles event persistence, networking, clustering, and deployment.

Key Features

  • Event Persistence: Store events in a reliable and scalable manner.
  • Networking: Implement networked clients and servers using gRPC for efficient communication.
  • Clustering: Scale the service into a distributed cluster using service discovery and consensus algorithms.
  • Deployment: Deploy the service locally and on cloud platforms like Kubernetes.
  • Observability: Monitor and debug the service with metrics, logs, and traces.
  • Security: Operate with secure internal communications using TLS and a Certificate Authority (CA).
  • Modularity: Write modular code that is easy to maintain and extend.
  • Testing: Ensure reliability and performance with comprehensive tests and benchmarks.

Structure

The project is structured to follow the progressive development of a distributed event streaming service, as outlined in "Distributed Services with Go":

  1. Getting Started: Basic event persistence and setup.
  2. Networking: Building networked clients and servers using gRPC.
  3. Clustering: Scaling the service into a distributed system with service discovery and consensus.
  4. Deployment: Techniques for deploying the distributed system to production environments.

Getting Started

To get started with the project, clone this repository and follow the instructions in each section of the codebase. Make sure you have Go installed and set up on your machine.

Extra

make sure you run below command Install command:

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc export PATH=$PATH:$(go env GOPATH)/bin

Install package... go get google.golang.org/grpc/cmd/protoc-gen-go-grpc

use require_unimplemented_servers flag in protoc command to avoid unimplemented method error

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or a pull request.

License

This project is licensed under the MIT License.

# Packages

No description provided by the author
No description provided by the author