Skip to main content

Redis-Based Message Broker for Python

Project description

Latest Travis CI build status Documentation Status

Documentation: Read the docs.

Quickstart

$ pip install rivulet

Notes

Limitations

  • No balanced consumers (yet)

  • Without the proper management tools (see todos), managing messages is painful raw redis.

Todos

  • Extend testing

    • Connection drops

    • Parallel producers, consumers (stressing the locking setup)

  • Provies management functionality

    • list channels, delete channels

    • count, list, update subscribers

    • count, list, prune messages

Implementation details

Data model:

  1. rvl:lock:<channel_id>: Used to maintain locks across multi-step redis calls (in particular when sending a message using a server-issued, monotonically increasing message seq id).

  2. rvl:id:<channel_id>: A counter providing sequence ids for messages in channel channel_id

  3. rvl:msg:<channel_id>: ZSET that maps a packed JSON string to the message sed id (allowing range queries on messages over seq ids).

  4. rvl:channel:<channel_id>: ZSET that maps a client id to the last message id in channel channel_id seen by the clinet

  5. rvl:index:<client_id>: ZSET that maps the channel_id to the last message id seen by client client_id

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rivulet-0.2.0.tar.gz (5.6 kB view details)

Uploaded Source

File details

Details for the file rivulet-0.2.0.tar.gz.

File metadata

  • Download URL: rivulet-0.2.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.3

File hashes

Hashes for rivulet-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2514977d1844b337263e080dbf14219118dc183e9c816fb01dafc970cf8caf31
MD5 eb198cc4b5d55b84783e10d086eba8bf
BLAKE2b-256 64cdfc2327d7c4a097d5adf19e20c78af130dab48fc857f7d5e00913a807c119

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page