Ordered Key-Value Stores
Drag image to reposition
Ordered Key-Value Stores
Please bookmark the following address: https://okvs.dev
This whole section is under construction, you can read but promise me that you will come back later!
While there is no shortage of database systems, there is none that meets all those requirements:
Free software or open source
Can represent and query poly-structured data:
recursive / hierarchical
time / spatial / geometric (vectors)
Support efficient:
horizontal scaling
down scaling
Support ACID transactions across objects
Full control from a high level general purpose programming language
We could argue indefinitely that one or more of those requirements are unnecessary, overkill, and that YAGNI. We could argue that by relaxing a few of the requirements, a particular software or more likely a set of software can come close. We could argue endlessly that building yet-another-database is NIH syndrom, wheel re-invention that curse the software industry with fragmentation and fatigue. We could invoke UNIX philosophy, enterprise software architectures, experiences, know-how, failed patterns, thousands of errors fixed, production use, decades of good services, and big communities as known as mainstream legacy.
Standing on the shoulders of giants, this document is merely trying to bring the attention of the community to a growing trend in the software engineering field, and demonstrate what you can achieve with an Ordered Key-Value Store (OKVS). Most of what is described in this document already exists in the wild hidden in Software as a Service (SaaS) products, but also sometime readily accessible in software programmed with C++, Java, JavaScript, Scala, C#, Go, Rust, Python, Clojure, and Scheme.
You have already used an Ordered Key-Value Store. And certainly, you know about the components upon which it is built. As matter of fact, if you are a software engineer, you will not learn new algorithms, or new data-structures, instead you will discover how to use your existing knowledge differently, not to mimic what you were doing before, but better alternatives.
Ordered Key Value Stores are useful, usable and used.
A question holds: Will Ordered Key-Value Store remain a tool for the experts? Maybe it will become more widely accepted in the tool-belt of software developers? One way to find out the response to that question is to answer another question: Are all needs of all domains covered by the abstractions provided in this document, or there is still some specific needs that arise in some business domains that require surgical intervention?