Modern applications deal with vast amounts of data, but also with a vast variety of data. Certain data might fit nicely into a relational model, other is better modeled as a graph, some parts need to be full-text searchable or require spatial indexing.
Relational databases, such as PostgreSQL, offer extensions and add-ons to support such multi-model usage. However, at a considerable ergonomic cost. A more unified and simple approach to interacting with multi-model data can be found in Logic Programming. In particular, with Datalog, a declarative logic programming language that is well-suited as a database query language.
In this talk we would like to motivate why Datalog is so well-suited by having a look at the semantics as well as the relationship to Relational Algebra and sketch how complex, multi-model database can be built on existing key-value stores. We hope to provide tools and inspiration for experimenting with your own custom databases.