Our participation in the development of software for Namba Taxi began at a time when the company was already in full swing in 2013. The software, which had been used then, had some very harmful disadvantages, so the management wisely decided to start developing its own software for taxi services. From there on our team was involved in the whole development process.
Thus, the goal for our engineers was, firstly, to develop the software itself, secondly, to migrate the operating business to this software, and, thirdly, to operationally process user feedback.
The system requirements were as follows:
1. Minimum changes in the workflow
People involved in the work process, often bring many actions to automatism. Also, processes in the operating business have already been worked out and painted. Therefore, the transition to new software should be as unobtrusive and painless for them.
2. High failover of the system
It is extremely important for the taxi service, especially in bad weather conditions, when the number of orders increases at times.
How We Built Failover Architecture for a Taxi Service Part 1
How we achieved the fault-tolerant architecture and why we can afford to lose any of our physical servers without the loss in architecture productivity.
3. Easy scaling in the future
It is always better to lay scaling at the very beginning of development if the project generally involves growth. So we did and, as time shows, this decision was absolutely correct.
4. Flexibility in development
The fewer restrictions, the easier it is to take into account new requirements and technologies and to incorporate them into the existing system without major alterations.
5. Support for Chinese navigators on WindowsCE
At that time, almost all taxi services were still using navigators, so it was impossible to transfer all the drivers to applications at once.
6. Support for Android devices
It was time to gradually move away from radios and navigators towards more practical, convenient, and modern technologies.
Reduce GPS Data Error on Android with Kalman Filter and Accelerometer
Increase position accuracy and GPS distance calculation for the driver’s app on Android devices with Kalman filter and accelerometer.
7. Updating orders in real time
The timing of the machine is one of the most important parameters, to which special attention was paid throughout the development and operation of the company.
8. Operating telephony using WebRTC in the browser
To exclude the need to use additional applications besides the browser for operators.
What to Choose to Implement Audio/Video Calls Solution Using WebRTC?
When to build your own solution for implementing Audio/Video Calls using WebRTC from scratch and when to use open source alternatives.
9. The ability to quickly migrate from foreign software to their own, without outage of the service
Given the processing of several orders per minute, it is extremely important to avoid the outage during and after the migration.
In the development process, there were limitations that had to be considered:
High cost of mobile traffic
Thus, it was necessary to limit the traffic sent to save costs for drivers and customers using mobile applications.
Limited server resources
Server costs were extremely critical, for a small, but booming taxi company at that time.
We were not able to add more people to participate in this project, because of the small development budget at that time.
The growth in the number of orders was rapid, as did the growth of the load, and therefore new software was needed as soon as possible (as it usually happens).
As a result, we made a highly scalable and fault-tolerant system, which:
- Withstands up to 700 drivers on the line without any delays;
- Serves about 6000 requests per second;
- Allows processing more than 10,000 orders per day.
At the moment, our developers and sysadmins continue to develop and maintain software for Namba Taxi.
There are already 6 taxi companies using Namba Taxi software, with even more to be connected in a few upcoming months.