aminofox/robust

By aminofox

β€’Updated 5 months ago

Robust is a message queue and streaming platform

Image
Message queues
0

290

aminofox/robust repository overview

⁠Robust - Distributed Message Queue & Streaming Platform

Robust Logo Go Version Go SDK

⁠Welcome to Robust! πŸ‘‹

Robust is a modern Distributed Message Queue and Streaming Platform, designed to handle millions of messages with low latency, high reliability, and flexible scalability.

⁠🎯 What is Robust?

Robust is a message broker that enables applications to communicate with each other through sending and receiving messages. Built with Go, Robust provides:

  • Message Queue: Message queuing with guaranteed delivery
  • Pub/Sub: Publish-Subscribe pattern for real-time streaming
  • Consumer Groups: Parallel processing with automatic load balancing
  • Message Persistence: Long-term message storage with replay capability
  • Distributed Architecture: Runs on clusters with replication and fault tolerance

⁠✨ Key Features

β πŸš€ High Performance
  • Low Latency: 1-20ms end-to-end latency
  • High Throughput: Millions of messages per second
  • Zero-copy: Optimized network and disk I/O
  • Batch Processing: Send/receive multiple messages at once
β πŸ”’ Reliable & Durable
  • Replication: Multi-replica for high availability
  • Durability: Messages persisted to disk
  • Acknowledgment: Ensures messages are processed successfully
  • Automatic Failover: Automatic node switching on failure
β πŸ“Š Easy to Manage
  • Built-in Metrics: Prometheus metrics out-of-the-box
  • Health Checks: HTTP endpoints for monitoring
  • Grafana Dashboards: Visualize metrics and performance
  • Simple Config: Easy-to-understand JSON configuration
β πŸ› οΈ Developer-friendly
  • Go SDK: Full-featured, production-ready SDK
  • Simple API: Easy to use, easy to learn
  • Type-safe: Strongly-typed messages
  • Context Support: Cancellation and timeouts

β πŸ—οΈ Architecture

Robust uses a distributed broker architecture with key components:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Robust Cluster                    β”‚
β”‚                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Broker  β”‚  β”‚  Broker  β”‚  β”‚  Broker  β”‚  β”‚
β”‚  β”‚  Node 1  β”‚  β”‚  Node 2  β”‚  β”‚  Node 3  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚       β”‚             β”‚             β”‚         β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
β”‚              Replication                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β–²                      β”‚
         β”‚                      β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Producers  β”‚        β”‚  Consumers  β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Core Concepts:

  • Topics: Logical channels to categorize messages
  • Partitions: Divide topics for parallelization
  • Producers: Applications that send messages
  • Consumers: Applications that receive and process messages
  • Consumer Groups: Groups of consumers processing in parallel

β πŸ’‘ Use Cases

Robust is suitable for many scenarios:

β πŸ“± Event-Driven Architecture
  • User actions, system events
  • Audit logs, activity streams
  • Real-time notifications
β πŸ”„ Data Integration
  • Microservices communication
  • Data pipelines between services
  • CDC (Change Data Capture)
β πŸ“Š Real-time Analytics
  • Click stream analysis
  • IoT sensor data processing
  • Real-time dashboards
β βš™οΈ Background Processing
  • Async task queues
  • Email/SMS sending
  • Image/video processing

β πŸ“– Documentation

⁠Getting Started with Robust
  1. What is Robust?⁠ - Platform details
  2. Key Features⁠ - Highlight features
  3. Architecture⁠ - System design
  4. Use Cases⁠ - Usage scenarios
⁠Using Go SDK
⁠Real-world Examples

⁠🌐 Go SDK (Open Source)

Robust Go SDK is open source and free to use:

go get github.com/aminofox/robust-go-sdk

Repository: github.com/aminofox/robust-go-sdk⁠


⁠🌐 Other Languages

πŸ“™ TiαΊΏng Việt⁠ - Vietnamese Documentation

Tag summary

Content type

Image

Digest

sha256:7c6dfa88f…

Size

10.6 MB

Last updated

5 months ago

docker pull aminofox/robust