Dolt for Military Applications
If any of you are like me, you've been distracted for the past couple weeks with the Russian invasion of Ukraine. This event has fundamentally changed the perspectives of many in the world. I foresee a bigger focus and investment on defense in the Western world.
Here at DoltHub we already believed in military applications of Dolt. Harpoon Ventures, a venture capital firm that helps companies like ours get connected with the US military, invested in our last round of financing. Harpoon helped the US Air Force become a Dolt customer via the SBIR program.
Why would the military be interested in Dolt? Dolt is a version controlled database. Dolt's decentralized properties make it well suited to some military applications. This blog will explain why.
Low/no connectivity
Providing internet in contested areas is difficult. Often these areas are remote and have poor internet coverage in peaceful times. In the case where civilian internet infrastructure is available, it may be destroyed in the conflict. Moreover, it's dangerous to use the internet in a war zone. Internet signals can be tracked. Using the internet can lead to your location being targeted by the enemy. If you absolutely must have internet connectivity, you only want to use it for the least amount of time. Access to the internet must be considered "nice to have" when designing software for this scenario.
This Twitter thread authored by Elon Musk about using his Starlink internet system in Ukraine provides a glimpse as to why.
Important warning: Starlink is the only non-Russian communications system still working in some parts of Ukraine, so probability of being targeted is high. Please use with caution.
— Elon Musk (@elonmusk) March 3, 2022
Place light camouflage over antenna to avoid visual detection
— Elon Musk (@elonmusk) March 3, 2022
In a contested situation it's usually not an option to just not communicate. You still need to coordinate with command. You need supplies to operate your equipment, lest it fall into the enemies hands.
In order to be resupplied, the people and equipment in the field must update command with their current state. Coordinating hundreds of thousands of nodes in a supply chain in modern times is not done with a telephone, pen, and paper. This is a job best performed by internet connected computers.
This is the common case but can be taken to the extreme in cases where the point is to operate in stealth, like submarines. Submarines surface to communicate with command and do so for the least amount of time possible to minimize the risk of being discovered.
So, in some military applications you face a trade off. You need to communicate with headquarters using the internet but using the internet is dangerous. A system that allows you to communicate the most information in the least amount of time would be useful.
No connectivity software systems
Decentralized software systems were invented to solve the problems introduced by breaks in network connectivity and bandwidth. Decentralized systems require no connectivity to a central system to read or write. A mutable copy of the data is stored locally. When connected to another instance, a synchronization or merge process is performed. Importantly, this merge process is optimized to require the least amount of compute and bandwidth resources necessary.
On the read path, you can only read the information you have. On the write path, you are free to make your own writes and can attempt to get them merged to another copy at a later time.
For software developers, the most familiar decentralized system is Git. In Git, you clone a copy of a directory of files to your local machine using an internet connection. You read from or write to those files disconnected from the internet. When you want to get the latest version from the remote Git repository, you connect to the remote repository and issue a "pull" command: give me all the changes I don't have and merge them into my local copy. When you want to send your changes to the remote Git repository, you connect to the remote repository and issue a "push" command: here are my changes to the files, merge them into what you have. To bring an additional level of organization to this process, Git provides the ability to use branches, or multiple long living copies of the same files.
Dolt is a no connectivity database
Dolt brings Git-style decentralization to the SQL database. Just like Git is ideal in no connectivity environments when dealing with files, Dolt is ideal in low connectivity environments when dealing with tables. Most large scale data, like logistical data used in military supply chains, is stored in tables.
With Dolt you write to the database disconnected. You can have a fully functioning offline application that uses the exact same software and models it would use if it were a standard centralized SQL database.
For example, if you need to update the amount of ammunition in reserve, just run an update query on your disconnected Dolt database. In parallel, your command can be writing to the same database with resupply locations and orders on how much ammunition your weapon requires using the information existing in its copy of the database.
When it is safe to connect to the internet, Dolt computes the difference between what you have and what the database in central command has and only sends these differences both ways. This synchronization process is very efficient, effectively allowing you to get the most information possible in and out in the shortest amount of time. Once the synchronization is complete, go back to disconnected. You and command now share a synchronized view with complete, auditable edit history.
To be clear, there are other ways to solve the disconnected write problem. You can build custom software to accomplish the mission. Dolt offers these capabilities off the shelf in a proven, tested, and efficient way. Particularly on only computing and transmitting the differences Dolt will outperform other models given the custom data structures Dolt leverages. For the disconnected database use case, we think Dolt is the choice.
Conclusion
Obviously, the invasion of Ukraine has many of our minds focused on defense. Situations that seemed abstract have become vividly real. One of these is the need for software backed by databases to operate in low or no connectivity.
Dolt, like Git, was designed to operate in no connectivity. When connectivity is available, Dolt can efficiently synchronize with other Dolt instances. Have a decentralized database use case, military or otherwise? Hit us up on our Discord and let's chat about whether Dolt can help.