Skip to content

self learning new things (protobuf, gRPC, RabbitMQ EDA patterns: SAGA, CQRS, Event Sourcing, Dead Letter Exchange, Resequencer, Redis Pub/Sub, WebSockets, TCP Sockets, ...etc)

Notifications You must be signed in to change notification settings

mAbdullah821/learning-new-things

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Repository

This repository contains multiple projects, each residing in its designated directory. Here's an overview of the existing projects:

Projects

  • Directory: protobuf-grpc
  • Description: A simple, beginner-friendly project demonstrating Protocol Buffers (Protobuf) and gRPC with Node.js. This project combines both technologies to show how to build high-performance microservices communication. It includes detailed comments explaining key concepts, making it perfect for learning purposes. The project demonstrates unary RPC (request-response) and server streaming patterns.
  • Navigate to the protobuf-grpc directory to explore the README.md file for detailed information, concepts explanation, and usage examples.
  • Directory: event-driven-architecture
  • Description: A collection of practical examples demonstrating core Event-Driven Architecture patterns and RabbitMQ concepts. This project includes multiple sub-projects covering different EDA patterns:
    • basics: Topic Exchange Pattern - Fundamental RabbitMQ concepts including topic exchanges, pattern matching, message acknowledgment, and flow control
    • dead-letter-trick: Dead Letter Exchange (DLX) Pattern - Delayed message processing and message resequencing using the Dead Letter Exchange trick
    • event-sourcing-CQRS: Event Sourcing & CQRS - Complete implementation with snapshot optimization, optimistic concurrency control, and idempotency handling
    • resequencer-pattern: Resequencer Pattern - Handles out-of-order message processing using in-memory buffering and sequence number tracking
    • SAGA-pattern: SAGA Pattern - Comprehensive implementation of distributed transactions using the SAGA pattern. Includes both Choreography-based (event-driven) and Orchestration-based (FSM) approaches. Features Pivot Transactions, Compensation (Rollback), Forward Recovery, Idempotency, and State Persistence.
  • Navigate to the event-driven-architecture directory to explore the README.md file for detailed information about each pattern and how to run the examples.
  • Directory: redis
  • Description: A simple demonstration of Redis Pub/Sub (Publish/Subscribe) messaging pattern. This project shows how to use Redis for real-time messaging between publishers and subscribers, including examples of channel-based messaging and pattern-based subscriptions.
  • Navigate to the redis directory to explore the README.md file for detailed information and usage examples.
  • Directory: sockets
  • Description: A collection of socket programming examples demonstrating both native TCP sockets and WebSocket-based real-time communication. Includes:
    • native-socket: Low-level TCP socket communication using Node.js net module
    • socketio: High-level WebSocket-based real-time chat application with a beautiful UI
  • Navigate to the sockets directory to explore the README.md file for detailed information about both implementations.

Releases

No releases published

Packages

No packages published