finds.dev← search

// the find

tschellenbach/Stream-Framework

★ 4,744 · Python · NOASSERTION · updated Dec 2025

Stream Framework is a Python library, which allows you to build news feed, activity streams and notification systems using Cassandra and/or Redis. The authors of Stream-Framework also provide a cloud service for feed technology:

Stream Framework is a Python library for building activity feeds and notification systems backed by Redis and/or Cassandra. It handles the fan-out problem — broadcasting one user's action to thousands of follower feeds — using Celery for async workers. Built by the team behind getstream.io, it's essentially the open-source version of what they now sell as a hosted service.

The fan-out abstraction via the Manager class is genuinely well-designed: you subclass, define follower lookup, and the framework handles sharding writes across Celery workers without you thinking about it. Supporting both Redis (fast, memory-bound) and Cassandra (durable, horizontally scalable) as pluggable backends is the right call for a library at this scale — you pick based on your write volume and budget. The aggregated feed type, which groups similar activities ('Alice, Bob, and 3 others liked your post'), is a first-class concept rather than a bolted-on afterthought. Test coverage uses a memory backend for unit tests and real backends for integration tests, which is the correct discipline.

This project is effectively abandonware — the README CI badge points to Travis CI (which died for open-source years ago), and the Cassandra notes cap out at 3.3 while current Cassandra is 5.x. The authors themselves are steering people toward their hosted service, so the open-source version gets no meaningful maintenance. There's also no async/await support anywhere: it's built entirely on Celery + synchronous Django ORM patterns, which is a hard mismatch if you're running a modern async Python stack. The Cassandra serializer layer is fragile — pickle is used as one option, and the custom CQL3 models would need non-trivial work to survive a driver upgrade. You're also required to own Cassandra, Redis, and a Celery broker yourself; the operational surface is substantial for a project that's no longer being updated.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →