SQLStreams

the messaging platform that is just Postgres

You last visited on 9999-99-99 Show what's new since then
Posted: 2026-09-17 · Report this thread
brandon Site Admin brandon profile Posts: 96

Here is my current running list of new proposed features on the Roadmap.

These are not ordered or exact. Other features not listed here may come first.

If you want the full unordered list look here.

Retry dead messages

Problem: Once a message exhausts its retries, fixing the cause does not make it run again. Inspecting and retrying dead messages currently requires SQL by hand.

Solution: List dead messages, see why they failed, and retry them through the client or CLI.

Upvote or discuss.

Replay an existing consumer group

Problem: A consumer handler can succeed while doing the wrong thing. Fixing its code does not revisit messages the group has already processed.

For example, a bad deploy makes search-indexer omit prices from orders 101–200. The consumer handler returned success, so there is nothing to retry. The corrected consumer handler needs to read those messages again.

Solution: Rewind an existing group to a message id or timestamp and process its retained history again. Other groups keep their progress. Anything the rewound group’s consumer handler does may happen again.

Upvote or discuss.

Circuit breakers

Problem: When a downstream dependency goes down, consumers keep trying messages that cannot succeed. An email-provider outage can exhaust the retry budgets of otherwise valid receipt requests.

Solution: Pause processing when a dependency is failing, then probe for recovery before resuming. A problem with one consumer instance should not stop healthy instances from making progress.

Upvote or discuss.

Message version conversion

Problem: A consumer expects one message version. Older versions are skipped, even when their data is still useful.

For example, search-indexer now reads version 2, which stores prices in cents. Retained orders 101–200 use version 1, which stored prices in dollars. The new consumer handler needs a conversion before it can rebuild those records.

Solution: Let consumers read older versions through converters you provide. You define how the old fields map to the new ones, without a separate process rewriting the retained messages.

Upvote or discuss.

Header/content routing

Problem: Routing currently matches one routing-key string. Independent attributes such as region and customer tier have to be encoded into that string, and every group has to work around its format.

Solution: Let each group select messages by attributes such as region=eu and tier=gold. Producers attach the attributes without needing to know which groups exist.

Upvote or discuss.

Lease renewal

Problem: A long-running consumer handler can outlive its lease while still making progress. Making every lease longer gives it more time, but also makes crash recovery slower.

Solution: Let the consumer handler report progress and extend its lease. Renewal would depend on progress reported by the consumer handler, with a maximum runtime so a stuck consumer handler cannot hold a message forever.

Upvote or discuss.