Hello! My name is Aliaksei Shchurko and I'm a developer. +)
Let me introduce myself before I tell you what flespi is and why we created it.
I was the one who initially created Wialon => nowadays the only telematics software platform in the world tracking more then million of vehicles in realtime. Now it is being developed and delivered to the market by a team of 150+ talented people including designers, business analytics, tech writers and so on. With large part of the team being developers of course.
I was the first person who launched SaaS version of the system in dutch datacenter with few servers and I was the one who spent sleepless nights if anything went wrong with the software, hardware or network. During our 2nd partner conference in Logoisk (far-far back in 2011) with a hundred of largest partners from all over the world who came to Belarus to discuss business opportunities, we experienced a major crash of a few database servers where we hosted SaaS version of the software nowadays named Wialon Hosting. And it was me who at 1 AM, a few hours before the conference opening speech, just after the welcome dinner, made my best to eliminate the crash and yes, I managed to fixed it correctly and nobody even noticed this downtime. Nowadays Wialon Hosting is running on a few racks filled with hundreds of servers administered by a perfect SRE team and we even have our own NOC.
It was me who created the first GPS software called GPSDisp more than 10 years ago and then, by occasion, during Linux server reinstallation immediately lost all the sources. Software that was sellable! Yep, when I needed to create protection for it later, I had just wrapped it by Sentinel USB keys, and I sold a few copies of it. The solution was running smoothly with no bugs for months and customers were happy. This was my first and last commercial software for Windows OS by the way.
I had nothing else to do, but to develop everything from scratch and make it Linux-based. At the time I already knew what I wanted to have. And it was amazing! The new software was much more feature-rich, but it was my first pure server-based Linux software, so it contained some architecture problems (with lots of good architecture features). The software was named Wialon - I just put some words together in my head, I googled the result to be sure nobody used it and voila. Now it is one of the most well-known brand names for B2B telematics market all over the world.
So what I did next? Sure, I put Wialon v1 sources on the shelf and one more time rewrote everything. The name for this new product was Wialon Beta2 and after we started to sell it as Wialon B2.
A year or two passed, our software conquered Russian market. It was simple, web-based (yeah, we developed proprietary web-server, you may just google "adf_http_server"), relatively cheap, fast and very scalable.
We had dozens of installations on customer servers, solved a variety of support questions and what should I do next? Obviously - full rewrite!
I had the biggest possible dispute that could ever happen inside the company with all our commercials, but I won (you know, they didn't have any chances in this dispute=)). So within 3-6 months we developed a new platform, we named it Wialon B3, just to show that it is the same Wialon, but a new version. Initially it was developed to run on multiple servers at once. To test this we employed SaaS model to provide software from our datacenter. This version was later renamed to Wialon Hosting.
So after 2009 Wialon became cloud software and since then we’ve had no chances for full rewrite. Hundreds of thousands vehicles controlled by the system made it impossible.
Yes, obviously, we rewrote a few internal components, tried to develop special AI methods for detecting fuel thefts and fillings, constantly optimizing some things, but preserved distributed, monolithic design and a large customer base, that got used to the software which is becoming a kind of anchor in using new technologies. We couldn’t even rewrite any algorithm, because it would change all the stats for the customers and we would need to support both old and new versions of the algorithm. And this is always weird.
So, two years ago I took a few smart brains, very experienced in the area and we created the team. flespi team. First we tried to create special components to be used in Wialon, but then, approximately a year ago, we decided to target commercial market as well with a product that is proudly made by developers for developers. Yes, now we have some kind of beta version, not ready to be immediately used in super large projects. But this is totally ok for one more start from scratch.
Yes, I forgot to mention => we downshifted from C++ to pure C, we developed so many things by our own, like web client/server, logging, application, configuration, installation frameworks to simplify management of the software running on thousands of servers in various datacenters, own database engine, HTTP REST API framework, we shifted from multithreaded applications to simple one-thread event driven binaries and many other very low-level raw things. We are using extremely low quantity of open source libraries and most of things is developed by ourselves.
Why we did it? Because we want to have full control over what is going on. Do you know why rally drivers do not use ABS and automatic gearboxes? Just because they want to have total control over each moment of driving. The same we are - we want to be able to predict everything and fix any situation that may occur during any type of load on the software. I had so many examples in my professional career when you are pushing the software on its limits, then suddenly third party libraries start to fail. And it is a usual case that the attempt to fix such bugs does not succeed or takes so much time...
That's why we want almost everything to be developed in-house. And now we have the platform built with deep experience in the telematics backend solutions, both from developer and system administrator point of view. Very flexible and very speedy => flespi platform.
Of course any product is nothing without people behind it. I always believe that a good talented team is the most important part of the project, much more important than bright ideas or any kind of money. And our team is incredible in the knowledge and experience of telematics backend solutions. Looking back to Gurtam, we state our mission as to provide application developers on this market with the best technological and very reliable backend undertaking everything related to telematics - data access, communication with devices, AI and neural network algorithms for event detection and processing, so that consumers of flespi platform can focus on their main mission - business application that processes telematics data and delivers proprietary product. And I see no reason why we should fail =)
Soon on the blog I will publish several articles on the principle of architecture we are using and why we are doing this way. Stay connected.
How to Access Messages in flespi: HTTP, MQTT, and More
A thorough explanation of the three methods to access messages in flespi — REST API, streams, and MQTT.