MobilityCorp provides short-term rentals for last-mile transport with bikes, scooters, cars, or vans in the European Union.
In each of the 27 countries, we offer 5,000 bikes, 5,000 scooters, 200 cars, and 200 vans. Users rent these vehicles on our booking platform 7 days in advance for cars and vans and 30 minutes before the trip for scooters and bikes.
All these means of transport run on electric motors, so we have technicians who maintain these vehicles and, in particular, change the batteries when they are worn out. Each vehicle sends metrics (gps and battery level) every 30 seconds.
Details in business goals page
- right vehicles aren’t in the right places,
- when ppl will want to use the vehicles ?
- can we anticipate customer needs ?
- User Management & Authentication
- Booking & Reservation Management
- Vehicle Management
- Payment Processing
- Return & Verification
- Technician Operations
- AI-Powered Services
- Reporting & Analytics
Details in specific page
We thought about these non functionnal requirements :
- High Availability and fault tolerance,
- Scalability and Elasticity : elasticity is the most important at short terme to use less resources at off-peak time,
- Compliance and Legal : which is for us, the need of testability and maintainability and is the most important point because of need to comply with legal evolution in EU about cars/bikes/scooter sharing and IT,
- AI & Machine Learning : need for model accuracy.
Then we choose the main characteristics of our system :
The main non functionnal requirements lead us to :
We could choose service based or even microkernel if MobilityCorp just started with one or two countries or if it was at a POC level, but we need elasticity to cut cost on cloud providers so we choose microservices with a bit of event driven on some part of our system. Microservices helps us in the need for agility to quickly change AI providers.
We rely on nine softwares third party softwares, but most of these are stable systems working for years.
We organized an event storming to have a shared overview of our business flows and designed this diagram :
We have 8 ADRs :