Decouple implementation
Currently ProfaneDB is thought to use RocksDB as storage, however any key-value DB should be easily plugged in, and even different paradigms should be easily allowed
e.g. for SQLite or MySQL:
-
Parser
generates the tables with the normalized descriptors -
Normalizer
must return data in a format where dependency is clear, so that messages can be inserted in the correct order
If completed by v1.0 this would mean new storage backends could be introduced without breaking changes in the interface, and users could swap their storage solution down the road. This does mean though that some kind of migration facility is developed too.