Databases are mostly a solved problem, but building chat features still means re-implementing the same things every time: threading, pagination, edits, soft deletes, encryption etc.
I’m working on a database where those chat-specific primitives (and the operational plumbing around them) are built in.
Think of it like the cloud chat API providers, but reduced to just the storage layer.
It’s not for every use case, but if you’re building anything chat-like AI or trad chat it might save you from rebuilding the same infrastructure again.
Would love feedback. I’m also taking a waitlist for anyone interested in using it.
Hi - dont know how to answer you directly - but yes the store has an index already, at a timed sequence for example. And a key called thread:thread_meta.
This statement is in no way saying you dont need an index, its simply saying, this is the variety of ways people might end up choosing.
Which is just 1 example of the type of work - a thread model & compatible store can fix and fix more efficiently.
In no way fancy too - this is just redis with a disc and some steps imo.
Hi - its not - more about 20% - for tests and non critical things.
Focusing on your abandonment part etc etc:
- Its not really trying to achieve that, this is simply a more efficient model, with a good storage coupling (for chat).
- What is being achieved here is a cohesive solution for chat specific workloads and optimising for it.
One of the benefits is speed (throughput, latency) - and very cheap calls.
More so - under sql, and for developers who have different demands and mostly changing demands - the effort is quite complicated situation (I speak from my own experience)
The focus here is a simple downmost layer - that allow all the varieties of top layers & requirements to be achieved easily.
In my blog post - i share a variety of these.
Also product is not ready - but thought i share this idea - as i think it can be of benefit to most devs who are starting out with a product.
You technically dont even need progressdb to achieve it - You can do it with a backend based pebble or rocksdb database.