How to keep some sort of ordering between joined streams?

Open
#155 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
kafka, python

Research direction

Start by reading the combine_latest behavior and the Kafka stream handling described in the issue. Determine how bounded skew and a temporarily unavailable source should affect emissions; done requires an agreed design and tests for delayed and stopped streams.

Written by the indexing model from the issue text.

Description

Say I have two source streams on kafka, one updating at 1 message per second, and one updating at 5 messages per second. I am using a combine_latest to join the streams. What would be the most appropriate way to not allow the streams to get more than ~10s out of sync? I effectively want to push futures back up one stream, blocking until more data arrives on the second.

Or in another scenario, suppose one of the sources dies temporarily. I really would like to be able to hault any more emits until the source comes back to life.

Dominant language
Python
Stars
1.3k
Forks
149
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from python-streamz/streamz

All issues in python-streamz/streamz

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.