Skip to content

satya-supercluster/event-systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Systems

Event-driven and real-time distributed systems using modern backend protocols, messaging, and infrastructure.

Repository Structure

event-systems/
├── api/
│   ├── graphql/          # GraphQL subscriptions and real-time queries
│   ├── rest/             # RESTful API endpoints with webhooks
│   └── webhooks/         # Webhook handlers and event dispatchers
│
├── realtime/
│   ├── websocket/        # WebSocket connections for bidirectional communication
│   └── webrtc/           # WebRTC implementation for peer-to-peer real-time data
│
├── rpc/
│   ├── grpc/             # gRPC services and streaming implementations
│   └── rpc/              # General RPC patterns and implementations
│
├── messaging/
│   ├── kafka/            # Apache Kafka producers, consumers, and stream processing
│   ├── pubsub/           # Pub/Sub messaging patterns
│   └── message-queue/    # Message queue implementations
│
├── cache/
│   └── redis/            # Redis caching, pub/sub, and streams
│
├── infra/
│   ├── nginx/            # Nginx configurations for load balancing and proxying
│   └── ssh/              # SSH tunneling and secure connections
│
└── common/
    ├── configs/          # Shared configuration files
    ├── scripts/          # Utility scripts for setup and deployment
    └── docs/             # Additional documentation and architecture diagrams

Purpose

This repository serves as a reference implementation for building scalable event-driven systems using various technologies and architectural patterns. Each module contains working examples, best practices, and documentation specific to its domain.

Quick Start

  1. Clone the repository:

    git clone https://github.com/satya-supercluster/event-systems.git
    cd event-systems
  2. Navigate to any module to explore implementations:

    cd api/graphql
    cat README.md
  3. Each module contains its own README with specific setup instructions and examples.

Module Overview

API Layer

  • GraphQL: Real-time data subscriptions and efficient query handling
  • REST: Traditional RESTful endpoints with event notifications
  • Webhooks: Event-driven HTTP callbacks for asynchronous processing

Real-time Communication

  • WebSocket: Full-duplex communication channels for live updates
  • WebRTC: Direct peer-to-peer connections for low-latency streaming

RPC Systems

  • gRPC: High-performance RPC with Protocol Buffers
  • RPC: Various RPC implementations and patterns

Message-Oriented Middleware

  • Kafka: Distributed streaming platform for high-throughput event processing
  • Pub/Sub: Publish-subscribe messaging for decoupled service communication
  • Message Queue: Asynchronous message queuing for reliable delivery

Caching & Data

  • Redis: In-memory caching, pub/sub, and stream processing

Infrastructure

  • Nginx: Reverse proxy, load balancing, and SSL termination
  • SSH: Secure tunneling and remote access configurations

Common Resources

  • Configs: Shared environment variables and settings
  • Scripts: Automation tools for testing and deployment
  • Docs: Architecture diagrams, design patterns, and additional guides

Contributing

Contributions are welcome! Please read the contributing guidelines in each module before submitting changes.

About

Event-driven and real-time distributed systems using modern backend protocols, messaging, and infrastructure.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors