Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced Streams #31

Open
thedodd opened this issue Dec 6, 2020 · 0 comments
Open

Advanced Streams #31

thedodd opened this issue Dec 6, 2020 · 0 comments
Labels
A-streams Hadron server streams
Projects

Comments

@thedodd
Copy link
Collaborator

thedodd commented Dec 6, 2020

In GitLab by @doddzilla on Oct 17, 2019, 10:17

possible designs

unique id

  • a stream which just checks an ID value before the entry is submitted.
  • if the ID is unique, the entry will be committed, else it will be rejected with a unique ID violation.
use cases
  • Exactly-once semantics enforced on the server. The basic stream's transactional ack+pub provides the same guarantees for normal stream processing patterns.
  • Guard against duplicate entries generally speaking.

tagged streams

  • this supersedes unique ID streams.
  • stream entries can be published with a set of associated tags.
    • the tags are declared adjacent to the payload, not as part of the payload itself. It is metadata.
    • the tags may be declared in two buckets:
      • constrain: the given tags will be added to the stream's index to guarantee uniqueness.
      • remove: the given tags will be removed from the stream's index.
    • compound indices / constraints can be declared by using a standardized tagging convention.
    • each tag published in the constrain bucket will be checked for uniqueness, and an error will be returned if the values are not unique.
    • all tag fields & values must be string values.
@thedodd thedodd added the A-streams Hadron server streams label Dec 6, 2020
@thedodd thedodd modified the milestone: 1.0 Dec 6, 2020
@thedodd thedodd added this to Backlog in Main Dec 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-streams Hadron server streams
Projects
Main
Backlog
Development

No branches or pull requests

1 participant