Evoque is a distributed ride management backend built with Go (Golang), designed for scalability, resilience, and real-time communication.
It follows a microservices architecture, ensuring loose coupling, independent deployment, and fault tolerance across core modules like Trip, Driver, and Payment services.
Evoque adopts a clean microservices architecture where each service is independent and communicates through well-defined interfaces.
- Microservices Architecture — Trip, Driver, and Payment services built independently in Go.
- API Gateway — Single entry point for clients, handling REST routing, authentication, and WebSocket connections.
- Real-Time Notifications — WebSocket-based event streaming for instant updates like driver assignment or trip status.
- Inter-Service Communication — High-performance gRPC + Protocol Buffers for structured and efficient data exchange.
- Asynchronous Messaging — RabbitMQ (Topic Exchange) used for event-driven workflows and decoupled service coordination.
- Distributed Tracing — Jaeger integrated for observability and monitoring service performance.
- Containerization & Orchestration — Dockerized microservices deployed via Kubernetes for auto-scaling and fault isolation.
- Configurable & Extensible — Follows 12-Factor App principles for easy environment configuration and scaling.
| Service | Description | Communication | Tech |
|---|---|---|---|
| Trip Service | Handles trip creation, status updates, and driver-trip assignments | gRPC + RabbitMQ | Go |
| Driver Service | Manages driver registration, availability, and matching | gRPC + RabbitMQ | Go |
| Payment Service | Processes payments and billing workflows | gRPC + RabbitMQ | Go |
| API Gateway | Handles client communication and routing | REST + WebSocket | Go |
| Category | Tools |
|---|---|
| Languages | Go (Golang) |
| Backend Communication | gRPC, Protocol Buffers |
| Messaging System | RabbitMQ (Topic Exchange) |
| Tracing & Monitoring | Jaeger |
| Containerization | Docker |
| Orchestration | Kubernetes |
| API & Real-time | REST, WebSockets |
| Databases | MongoDB / SQL (as per service requirements) |
| Version Control | GitHub |