<<<<<<< HEAD
A simplified demo of a real-time monitoring service for e-commerce orders with WebSocket streaming, Redis pub/sub, and Prometheus metrics.
β Gorilla WebSocket - Real-time bidirectional communication β Redis Pub/Sub - Message queuing and distribution β Prometheus Metrics - Queue depth, latency, error rates β Grafana Dashboard - Real-time visualization β Concurrent Connections - Handles 200+ WebSocket connections β Goroutines - Efficient concurrent processing
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β E-commerce βββββΆβ Redis Pub/Sub βββββΆβ WebSocket Hub β
β Order Events β β (Scaling) β β (200+ conns) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Prometheus β β Dashboard β
β (Metrics) β β (Real-time) β
βββββββββββββββββββ βββββββββββββββββββ
-
Install Dependencies
go mod tidy
-
Start Redis (optional - demo works without it)
docker run -d -p 6379:6379 redis:alpine
-
Run the Service
go run main.go
-
Open Dashboard
- Dashboard: http://localhost:8080
- Metrics: http://localhost:8080/metrics
- WebSocket: ws://localhost:8080/ws
- Manages 200+ concurrent connections
- Thread-safe connection handling
- Automatic cleanup and reconnection
- Horizontal scaling across instances
- Message queuing and distribution
- Fault tolerance and reliability
orders_total- Total orders by statuswebsocket_connections_active- Active connectionsorder_processing_latency_seconds- Processing latency
- Live order statistics
- Revenue tracking
- Error rate monitoring
- Queue depth visualization
This is a simplified demo. For production use, consider:
- Authentication - JWT tokens, API keys
- Rate Limiting - Prevent abuse
- Error Handling - Graceful degradation
- Monitoring - Health checks, alerts
- Security - HTTPS, CORS, input validation
- Scaling - Load balancers, multiple instances
- Persistence - Database integration
- Testing - Unit tests, integration tests
- Simulated data (not real e-commerce integration)
- No authentication or security
- Basic error handling
- Simplified Redis configuration
- Mock metrics generation
To make this production-ready:
- Integrate with real e-commerce system
- Add authentication and authorization
- Implement proper error handling
- Add comprehensive testing
- Set up monitoring and alerting
- Configure for horizontal scaling =======
A production-grade real-time monitoring system for e-commerce order pipelines β built with Go, Redis, Gorilla WebSocket, Docker, and Prometheus + Grafana for observability.
This service streams live order events to a browser dashboard with millisecond latency, enabling instant visibility into queue health, latency trends, and failure conditions.
- Real-time WebSocket dashboard using Go + Gorilla WebSocket
- Redis Pub/Sub ingestion layer decoupling producers from WebSocket broadcast
- Concurrency-safe fanout with goroutines and graceful connection lifecycle
- Live metrics tracking β queue depth, p95 latency, failure rates
- Prometheus + Grafana integration for production-grade observability
- Dockerized deployment with
docker-compose up --build
flowchart LR
Producer -->|publishes| Redis[(Redis Pub/Sub)]
Redis -->|stream| GoService[Go WebSocket Service]
GoService -->|WS push| Dashboard[Web Client]
GoService -->|metrics| Prometheus
Prometheus --> Grafana
>>>>>>> 7c8d21818a1d9dbf7170d721c2e8b5d5fc9b22e8