But yeah, for a lot of implementations you don't need streaming. But for pull based apps you design your architecture differently, some things are a lot easier than it is with DB, some things are harder.
The second you approach any kind of scale, this falls apart and/or you end up with a more expensive and worse version of Kafka.
I was surprised how far sqlite goes with some sharding on modern SSDs for those in-between scale services/saas
Kafka already solves this problem and gives me message durability, near infinite scale out, sharding, delivery guarantees, etc out of the box. I do not care to develop, reshard databases or production-alize this myself.
My main point is, I have zero interest in creating novel solutions to a solved problem. It just artificially increases the complexity of my work and the learning curve for contributors.
Not everything needs to be big and complicated.
(SELECT * from EVENTS where TIMESTAMP > LAST_TS LIMIT 50) for example
Have a table level seqno as monotonically increasing number stamped for every mutation. When a subscriber connects it asks for rows > Subscriber's seqno-last-handled.