This repository contains multiple projects, each residing in its designated directory. Here's an overview of the existing 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-grpcdirectory 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-architecturedirectory 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
redisdirectory 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
netmodule - socketio: High-level WebSocket-based real-time chat application with a beautiful UI
- native-socket: Low-level TCP socket communication using Node.js
- Navigate to the
socketsdirectory to explore the README.md file for detailed information about both implementations.