About the Client
Our client is building the world’s first drone-based delivery service – cutting delivery costs and times by an order of magnitude in an (almost) infinite market.
In 2017 they launched the world’s first fully operational, regulatory approved, on-demand drone delivery service in Reykjavik, Iceland, and became the leading competitor in the race to deploy a true on-demand delivery service via autonomous vehicles.
While the majority of packages that require transit across cities are no heavier than 2lbs, client’s drones are able to carry up to 6.5lbs and travel a distance of approximately 6 aerial miles. The drones require minimal handling thus reducing manpower, and ensuring a quick delivery every single time.
The client had a truly revolutionary idea: to make drone delivery simpler, faster and, of course, cheaper. Yes, using drones for delivery is nothing new, but all of those drones are remotely controlled by a pilot. So, our client wanted to develop the world’s first drones handled over the cloud from the Control Center. This would help operate a fleet of drones automatically, safely and cost-effectively without a pilot.
Our team created an advanced yet easy-to-use online dashboard that brings together all the tools you need to manage your fleet of delivery drones. The dashboard is immensely helpful whether your fleet includes a single drone making deliveries within an exclusive resort, or tens of drones delivering consumer goods across an entire city.
Some situations, like emergency landing when the charge level is low or in extreme weather conditions, required us to think of a separate solution. We also developed software that allows delivering goods in two ways:
- from merchants to clients
- from post to clients
Our team developed the four main features:
- Advanced Route Management
Lets users define flight routes with unlimited smart way-points. Drones can take off and land from a single center or multiple centers.
- Smart Way-Points
Lets users use actionable way-points to define different actions across routes; land with or without recipient approval, wire release from mid-air, fly between trees and other obstacles, etc.
Provides users with detailed reports for each mission, including full telemetry data, flight playback, server logs and flight controller reporting.
- Automatic Preflight Check
The system automatically performs a full system preflight check before approving each takeoff, verifying hardware readiness, flight route availability, weather conditions and more.
When the client addressed us, he had already had the first version of the project, and our job was to develop the second production-ready version. This allowed us to concentrate on the features and architecture upgrading.
The main challenge was to split the solution’s monolith architecture into four microservices. The system’s connections and transactions also had to be very fast, since the solution had to work in real time. On top of that, the system had to keep working even in the critical moments like when the service crashes or the connection is lost. We rebuilt the infrastructure, and now the system has scenarios for different situations.
The back-end part was developed using Python (a Django framework) and Postgres (a relational database). The service contains four components that are connected via WebSockets and uses Redis for communication between servers or tasks processing. The system works using Docker and is deployed on the AWS infrastructure.
Building an architecture with separate stateless services was an excellent decision in terms of fault tolerance. Each of the four components can work as a single service, meaning that is one or even several services breaks down, the system will still work. On top of that, a service that has been hanging for some time will try to reconnect to the system automatically once it is restored. This ensures uninterrupted operation of all drones.