A robust, microservices-based system designed for real-time fleet management, tracking, and route optimization.
Movex demonstrates a modern, scalable architecture, employing asynchronous communication and diverse data persistence strategies to address critical operational challenges.
└── common-contracts/
└── src/
└── main/
└── java/
└── com/
└── fleet/
└── management/
└── common_contracts/
└── dto/
└── TelemetryDataDto.java
└── OptimizationRequestDto.java
└── OptimizationResultDto.java
└── LocationDto.java
└── microservices/
├── fleet-management-service/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/fleet/management/fleet_management_service/
│ │ │ │ ├── config/
│ │ │ │ ├── controller/
│ │ │ │ ├── entity/
│ │ │ │ ├── repository/
│ │ │ │ └── service/
│ │ │ └── resources/
│ │ └── test/
│ ├── Dockerfile
│ └── k8s/
│ ├── deployment.yaml
│ └── service.yaml
├── telemetry-ingestion-service/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/fleet/management/telemetry_ingestion_service/
│ │ │ │ ├── config/
│ │ │ │ └── controller/
│ │ │ └── resources/
│ │ └── test/
│ ├── Dockerfile
│ └── k8s/
│ ├── deployment.yaml
│ └── service.yaml
├── telemetry-processing-alert-service/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/fleet/management/telemetry_processing_alert_service/
│ │ │ │ ├── config/
│ │ │ │ ├── model/
│ │ │ │ ├── repository/
│ │ │ │ └── service/
│ │ │ └── resources/
│ │ └── test/
│ ├── Dockerfile
│ └── k8s/
│ ├── deployment.yaml
│ └── service.yaml
├── route-optimization-service/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/fleet/management/route_optimization_service/
│ │ │ │ ├── client/
│ │ │ │ ├── config/
│ │ │ │ ├── dto/
│ │ │ │ └── service/
│ │ │ └── resources/
│ │ └── test/
│ ├── Dockerfile
│ └── k8s/
│ ├── deployment.yaml
│ └── service.yaml
└── notification-service/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/fleet/management/notification_service/
│ │ │ ├── config/
│ │ │ ├── model/
│ │ │ ├── repository/
│ │ │ └── service/
│ │ │ └── resources/
│ │ └── test/
│ ├── Dockerfile
│ └── k8s/
│ ├── deployment.yaml
│ └── service.yaml
- Microservices Architecture: Designed as a set of independently deployable services to enhance scalability, resilience, and maintainability.
- Asynchronous Communication with RabbitMQ: Events and messages are exchanged asynchronously between services, ensuring loose coupling and efficient processing.
- Diverse Data Persistence: Utilizes PostgreSQL for relational data (e.g., fleet management) and MongoDB for flexible, non-relational data (e.g., telemetry records, notification logs).
- Real-time Telemetry Ingestion & Processing: Ingests high-volume telemetry data, processes it in real-time, and generates actionable alerts based on defined rules.
- Inter-Service Communication with OpenFeign: Uses OpenFeign client for declarative, synchronous HTTP calls between microservices (e.g., Route Optimization fetching vehicle details from Fleet Management).
- Route Optimization: Simulates route optimization based on vehicle and destination data, publishing results for further actions.
- Event-Driven Notifications: Consumes alerts and optimization results to simulate sending notifications, logging each event.
- Containerization with Docker: Each microservice is containerized using optimized Dockerfiles for consistent environments.
- Local Orchestration with Kubernetes (Minikube): Demonstrates deployment and management of the entire microservices architecture on a local Kubernetes cluster.
- Backend: Java 17, Spring Boot 3
- Build Tool: Apache Maven
- Messaging: RabbitMQ
- Data Persistence: Spring Data JPA, PostgreSQL, Spring Data MongoDB, MongoDB
- Inter-Service Communication: REST APIs, OpenFeign
- Containerization: Docker
- Orchestration: Kubernetes (Minikube)
- Utilities: Lombok, Jakarta Validation