Lime monitors data from their scooters and bikes in real-time in order to ensure that all bikes are charged and available to riders. In fact, in 2018 Lime monitored 26 million scooter and bike trips worldwide according to their year-end report. The average ride was just over one mile totaling 28 million miles for the year.
Not only does Lime monitor data from their scooters they also remotely slow them down depending on where they are in a city, all in real-time.
Lime is a company about urban transportation and we provide a green and affordable transportation option for the users. Our scooter is connected to our servers to ensure a higher quality of service. We need to send commands to scooters in almost real-time. Maintaining hundreds of thousands of concurrent connections is a huge engineering challenge and that number is only growing.
We collect all kinds of information between these vehicles. For example, GPS, location, velocity battery level, and motor information. Safety is a top priority for Lime. As an example, we have a feature that requires us to slow down vehicles when they enter certain areas of the city. To achieve that we have had to increase the frequency of data collection drastically. We have a team of data scientists and machine learning engineers. The team analyzes this data to help us understand how people use our service.
Normally we see spikes from 11 a.m. to 4 p.m., depending on where you are, but sometimes we also notice a very interesting spike at 9:00 p.m. So we have a network of on-demand workers that charge our scooters. We call them Juicers. Every night at 9:00 p.m. we start to allow Juicers to collect scooters. All of them open the app at the same time which causes the traffic to flatten our servers and causes a traffic spike. In the past, the traffic came directly into a relational database and our service become slower and unusable.
We started to use Amazon Kinesis to ingest real-time data coming from our vehicles. The speed of the growth of this industry is incredible. Scalability is one critical issue we have to deal with and we can let Kinesis do the heavy lifting behind the scene. We can spend the time to work on some more important features that users really need.