VibeMQ
Getting Started
Quick Start
Prerequisites
Installation
First Server
First Client
Complete Example: Publisher and Subscriber
Next Steps
Installation
System Requirements
NuGet Installation
Basic Packages
Dependency Injection Packages
All Packages at Once
Docker Installation
Dockerfile
Docker Compose
Installation from Source Code
Clone the Repository
Build the Project
Local Package Installation
Integration into Existing Projects
ASP.NET Core Application
Worker Service
Console Application
Installation Verification
Server Verification
Client Verification
Troubleshooting
Port Already in Use
Authentication Error
TLS/SSL Errors
Next Steps
Core Concepts
Architecture
Architecture Overview
System Components
VibeMQ.Core
VibeMQ.Protocol
VibeMQ.Server
VibeMQ.Client
VibeMQ.Health
Operating Principles
Message Lifecycle
Delivery Modes
Keep-alive Mechanism
Automatic Reconnections
Graceful Shutdown
Memory Management
Backpressure
Object Pool
Metrics and Monitoring
Next Steps
Features
Publish/Subscribe (Pub/Sub)
Delivery Modes
Round-robin
Fan-out with Acknowledgment
Fan-out without Acknowledgment
Priority-based
Delivery Guarantees
Acknowledgments (ACK)
Retry Attempts
Dead Letter Queue (DLQ)
Queue Management
Creating a Queue
Deleting a Queue
Getting Information
List Queues
Message Priorities
Keep-alive (PING/PONG)
Automatic Reconnections
Authentication
TLS/SSL Encryption
Rate Limiting
Graceful Shutdown
Health Checks
Metrics
Next Steps
Communication Protocol
Overview
Protocol Layers
Framing
Length Format
Frame Example
Message Format
Binary Protocol Structure
Logical Structure
Message Fields
Command Types (CommandType)
Command Descriptions
Connection Management
Connect
ConnectAck
Disconnect
Keep-alive
Ping
Pong
Publish/Subscribe
Publish
PublishAck
Subscribe
SubscribeAck
Unsubscribe
UnsubscribeAck
Deliver
Acknowledgment
Ack
Queue Management
CreateQueue
DeleteQueue
QueueInfo
ListQueues
Errors
Error
Error Codes
Headers
Common Headers
Message Headers
Queue Headers
Exchange Examples
Connection Establishment
Message Publishing
Message Delivery
Keep-alive
Protocol Versions
Next Steps
Setup & Usage
Server Setup
Basic Configuration
Minimal Configuration
Advanced Configuration
Configuration Parameters
Basic Parameters
Default Queue Settings
Rate Limiting
TLS/SSL Settings
Health Check Settings
Delivery Modes
Round-robin
Fan-out with Acknowledgment
Fan-out without Acknowledgment
Priority-based
Overflow Strategies
DropOldest
DropNewest
BlockPublisher
RedirectToDlq
Dead Letter Queue
Authentication
TLS/SSL Encryption
Starting and Stopping
Starting Server
Stopping Server
Logging
Configuration Examples
Minimal Server for Development
Production Server
Microservices Server
IoT Server
Next Steps
Client Usage
Using with Dependency Injection (IVibeMQClient)
Connecting to Server
Basic Connection
Connection with Authentication
Connection with Logging
Publishing Messages
Basic Publishing
Publishing with Priority
Publishing with Headers
Typed Publishing
Subscribing to Messages
Basic Subscription
Typed Subscription
Subscription with Error Handling
Multiple Subscriptions
Unsubscribing from Queue
Automatic Unsubscribe
Manual Unsubscribe
Queue Management
Creating a Queue
Deleting a Queue
Getting Queue Information
List Queues
Client Settings
ClientOptions
ReconnectPolicy
TLS/SSL Connection
Handling Disconnections
Automatic Reconnection
Status Check
Events (Optional)
Disconnecting
Graceful Disconnect
Using Using
Usage Examples
Simple Publisher
Simple Subscriber
Task Processing Worker
Event Bus for Microservices
Troubleshooting
Connection Error
Authentication Error
Connection Timeout
Frequent Disconnections
Next Steps
Configuration
Server Configuration
BrokerOptions
Basic Parameters
Port
MaxConnections
MaxMessageSize
EnableAuthentication
AuthToken
QueueDefaults
DefaultDeliveryMode
MaxQueueSize
EnableAutoCreate
MessageTtl
EnableDeadLetterQueue
DeadLetterQueueName
OverflowStrategy
MaxRetryAttempts
TlsOptions
Enabled
CertificatePath
CertificatePassword
RateLimitOptions
Enabled
MaxConnectionsPerIpPerWindow
ConnectionWindowSeconds
MaxMessagesPerClientPerSecond
Client Configuration
ClientOptions
AuthToken
ReconnectPolicy
KeepAliveInterval
CommandTimeout
UseTls
SkipCertificateValidation
ReconnectPolicy
MaxAttempts
InitialDelay
MaxDelay
UseExponentialBackoff
Health Check Configuration
HealthCheckOptions
Enabled
Port
Configuration Examples
Minimal
Development
Production
IoT Scenario
Microservices
Next Steps
DI Integration
Overview
Package Installation
Server Integration
Basic Registration
Registration with Configuration
Configuration from appsettings.json
Advanced Configuration
Client Integration
Basic Registration
Registration with Configuration
Configuration from appsettings.json
Advanced Client Configuration
Using in Services
Publishing Messages from Service (IVibeMQClient)
Publishing with IVibeMQClientFactory (dedicated client)
Subscribing to Messages in Background Service
Event Bus with DI
Combined Usage
Server + Client in One Application
Multiple brokers
Configuration via Environment Variables
Docker Compose Example
Troubleshooting
Error: “Broker already registered”
Error: “Unable to connect”
Auto-start Server
Next Steps
Monitoring & Operations
Monitoring
Health Checks
Enabling Health Checks
Endpoints
GET /health/
GET /metrics/
Metrics
Counters
TotalMessagesPublished
TotalMessagesDelivered
TotalMessagesAcknowledged
TotalRetries
TotalDeadLettered
TotalErrors
TotalConnectionsAccepted
TotalConnectionsRejected
Gauge Metrics
ActiveConnections
ActiveQueues
InFlightMessages
MemoryUsageBytes
Latency
AverageDeliveryLatencyMs
Monitoring with Prometheus
Grafana Dashboard
Logging
Logging Configuration
Log Levels
Log Examples
Alerting
Next Steps
Health Checks
Overview
Enabling Health Checks
Configuration Parameters
Endpoints
GET /health/
GET /metrics/
Using with Orchestrators
Kubernetes
Docker Compose
Azure Container Instances
AWS ECS
Monitoring Health Checks
Manual Check
Automatic Monitoring
Integration with Monitoring Systems
Prometheus
Grafana
Datadog
New Relic
Troubleshooting
Health check not responding
Returns 503
Health check timeout
Next Steps
Troubleshooting
Connection Issues
“Connection refused”
“Connection timeout”
“Host unreachable”
Authentication Issues
“Authentication failed”
“Authentication required”
Queue Issues
“Queue not found”
“Queue already exists”
Message Delivery Issues
Messages Not Delivered
Slow Message Delivery
“Message timeout”
Memory Issues
“Out of memory”
Backpressure
Reconnection Issues
Frequent Disconnections
“Max reconnect attempts exceeded”
TLS/SSL Issues
“Certificate validation failed”
“TLS handshake failed”
Rate Limiting Issues
“Rate limit exceeded”
“Too many connections”
Diagnostics
Enabling Verbose Logging
Health Check
Queue Check
Connection Check
Next Steps
Additional Resources
Examples
Basic Examples
Simple Publisher
Simple Subscriber
Server
Task Queues
Order Processing
Background Tasks with Priorities
Event Bus
EventBus Implementation
Microservices
Data Synchronization Between Services
CQRS with VibeMQ
Monitoring and Logging
Custom Logger
Application Metrics
Next Steps
Frequently Asked Questions
General Questions
What is VibeMQ?
How is VibeMQ different from RabbitMQ/Kafka?
When to use VibeMQ?
What .NET versions are supported?
Technical Questions
How does delivery guarantee work?
What happens when server restarts?
How to scale VibeMQ?
How to ensure security?
What delivery modes are supported?
How does Dead Letter Queue work?
Deployment
How to run in Docker?
How to use with Kubernetes?
How to configure for production?
Performance
What is VibeMQ performance?
How to optimize performance?
Security
How secure is token authentication?
Do I need to use TLS?
How to protect against DDoS?
Integration
How to use with ASP.NET Core?
How to use with Worker Service?
Can I use with other languages?
Troubleshooting
Why are messages lost?
Why high latency?
Why frequent disconnections?
Next Steps
Changelog
Planned Versions
Version 1.0.0 (In Development)
Backlog (Version 2.0+)
Version Archive
Version 0.1.0 (Alpha)
Version Format
Versioning Policy
Version Support
Release Schedule
Change Notifications
Contributing to the Project
How to Suggest an Improvement
How to Report a Bug
How to Contribute to Documentation
Links
VibeMQ
Index
Index