Data analytics have the ability to improve an EV driver’s experience – except when they ruin it by making the whole system crash. I think that pretty much sums up my day-to-day experience as a developer.
Electric cars are essentially digital cars. Every time you plug one in to a charging station, there’s a whole lot more being transferred than just energy. Vehicle characteristics, battery status, charging history and other data are not only easily available but extremely useful for optimizing the driver experience. Some of our most popular functionality at AXSO, like payment tools and trip planners, depends entirely on this exchange of data every time a vehicle is hooked up.
The thing is, it’s a ginormous, virtually infinite pile of data. And our capacity to transfer, store and treat it is anything but infinite. What’s more, the data density is not evenly distributed over time but follows peaks and troughs that are almost completely unpredictable. Sure, demand is higher at certain times of day, but apart from that, there is little consistency to latch onto.
All that to say, when it comes to providing restaurant and commercial operators the ability to offer EV drivers in their area special offers, it’s critical we don’t further overload the platform.
At the same time, we need to make sure, that any offers made are sufficiently relevant to let EV drivers make good use of their time during charging cycles. We need to carry out a certain targeting and retrieve the metadata on every offer: type of event, time, offer ID, business ID, driver ID, language, station location, distance to business, etc.
With over 100,000 users, we quickly reached millions of events which, combined with existing data transfers, risked creating bottlenecks.
Time to show resourcefulness
However, we did not want to abandon the functionality completely, even if it isn’t essential, as it lets network managers and station operators enhance the charging experience, and hence stand out in the eyes of EV drivers.
So how do you add this new functionality without its analytics blowing past platform capacity – crashing our system in other words?
That’s where our engineers had to use their creativity.
Our breakthrough was to not immediately send analytics produced by offers but store them in a queue, index them intelligently and send them together in a compressed file during a lull in essential service activity. In this way we put a lot less pressure on the platform back end. It’s an idea that looks like it adds system complexity, when it in fact lightens the load.
I’m happy to add that all of this was developed in house, with the exception of an external API which we use to determine a user’s gender from their first name, information that’s useful for segmentation and targeting offers but that we don’t have the right to capture from users.
Anyone who has ever contributed to the development of large-scale digital platforms knows that every little issue quickly multiplies, and the tiniest mistake can translate into a catastrophic crash. But with simple effective ideas like this one, the AXSO platform has managed to maintain an impeccable track record.