2 January, 2024

December 2023 change log

Major flespi improvements in December 2023.

2023 was not the easiest year. Too much evil has happened already, and probably even more evil will happen in the upcoming 2024. But life is still ongoing. Let’s live it, enjoy it, and lend a helping hand to those who are not as lucky and live in deprivation. Here is the last portion of flespi updates in 2023 for you.

We finished December with a 99.9823% monthly uptime. We experienced three downtimes: 95, 302, and 62 seconds each. Details explaining these incidents can be found in our NOC channel. All were attributed to hardware failures, with the longest, a 5-minute downtime, disconnecting the reserve data center entirely. Typically, such failures are anticipated and adequately prepared for, but this was not the case at that particular time. 

During the summer, we enhanced synchronization and durability for specific operations heavily relying on the availability and throughput of the MQTT Broker service. In all cases in December, hardware failures caused our MQTT Broker system, responsible for synchronization services, to throttle due to some unresponsive nodes that were not fully offline. We detect fully offline nodes within a minute via timeout, but this duration is excessive for real-time operations. To address this issue, we have now resolved it by excluding MQTT Broker nodes that do not respond within 2 seconds from participating in subsequent synchronization operations. This modification should effectively remove the platform's reliance on faulty hardware, whether it's a single server, a rack, or an entire data center.

Regarding the final year uptime, our mark for 2023 is "four nines" - 99.99%, with 3153 seconds of downtime for the year, slightly worse than 2022 due to various hardware or network failures. We aim to improve this number in 2024.

We reached 800,000 registered devices on the platform with a 38% annual growth rate. Numerous new projects run by our active users led to an increased demand for instant customer service. To cope with this pressure and improve the quality and responsiveness, we introduced an AI assistant, equipped with our Knowledge Base and Blog materials, highly knowledgeable about flespi (but generally less smart outside our realm). An upcoming article will detail its functionality, particularly interesting for those exploring generative AI services and the ways to implement them.

For some IoT-related generic stream types such as standard HTTP and MQTT streams, we added a 'convert_message' configuration option. This feature allows the conversion of source message parameters, leaving only specified fields, even wiping flespi system parameters from the message. This can be valuable to filter received data, for example, to solely transmit position data while excluding other information.

There has been a lot of work with plugins last month:

  • open-source plugin for the latest Grafana version released, allowing users to visualize device data in Grafana (future updates will expand its capabilities to visualize logs, container data, account statistics, and potentially calculated intervals);

  • the 'msg-dtc-decoder' plugin released to decode DTC codes in messages and append them with textual descriptions;

  • another new release, the 'msg-merge' plugin, restores message parameters from existing device messages with the same timestamp. This plugin proves useful for out-of-order data injection (e.g., photo, video, or accelerometer data) and re-posted messages via REST API, enriching messages with specified parameters from stored ones;

  • the 'msg-geofence' plugin now supports a hit test for multiple geofences if required. This mode adds an array of geofence names to the message instead of a single hit geofence name.

We have published information in our KB on how to store any custom user information in any flespi entity. I believe this is one of the simplest yet most significant features we have released because it opens up a wide range of new possibilities for our users with flespi. This functionality, however, is exclusively available for users who utilize flespi via API, catering more towards backend-oriented usage.

We implemented FTP server functionality in the telematics hub, now ready to receive media (photo and video) data from Jimi Iot (Concox) and Queclink video telematics devices. Specific per-model support will be announced in the respective protocol changelog thread on our forum.

Authorization via the corporate SSO system in realms is now implemented too but scheduled for release in January.

Sergei Lecuhanka, our VP of Business Development, wrote an insightful analysis on how flespi defined a new SaaS category. It's worth reading today to draw final conclusions in the next 5 years and see if reality aligns with his assumptions. I can only agree with him that initially, there was almost zero market, and it seems like we actually created it. The customers who began with us in the very early days are now well-known in their niche markets and currently operate tens of thousands of devices passing through our platform. Almost every month in 2023, we converted 20 more customers to commercial contracts. Clearly, they have a significant opportunity to become major players in their market in the next 5-10 years, alongside flespi. ;) By the way, you can discuss this topic with Sergei in person at the CES expo in Las Vegas (contact us to schedule a meeting or drop him an email).

Compared to the 2023 roadmap, I'd like not to disclose our plans for 2024 but rest assured: we continue to adhere to the outlined development tracks and still have numerous interesting and vital implementations ahead. Ultimately, our goal is to make flespi the preeminent telematics backend service globally and simplify telematics applications and services atop our platform as much as practically achievable. We’re dedicated to channeling all our efforts not only toward reaching this pinnacle someday but also maintaining our position at the forefront for as long as possible.

Wishing you a Happy New Year from the entire flespi team!