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

CRDT streams #89

Closed
mikevoronov opened this issue Apr 13, 2021 · 1 comment
Closed

CRDT streams #89

mikevoronov opened this issue Apr 13, 2021 · 1 comment
Labels
C-enhancement category: an issue proposing an enchacement or a PR with one

Comments

@mikevoronov
Copy link
Member

mikevoronov commented Apr 13, 2021

AIR streams have no guarantees of ordering. Consider the following script

(seq
  (fold peers peer
    (par
       (call peer ("service" "function") [args] $stream)
       (next peer)
    )
  )
  (call %init_peer_id% ("" "") [$stream])
)

Assuming that peers contains some peer ids, executing this scripts will result a non-deterministic $stream content on %init_peer_id%, that depends on particle ordering.

According to the AIR philosophy and gurantees, it's better to introduce a CRDT-like streams that would have the consistent order on each peer, but they could differ on different peers.

@mikevoronov mikevoronov added the C-enhancement category: an issue proposing an enchacement or a PR with one label Sep 8, 2021
@mikevoronov mikevoronov changed the title CRDT Streams CRDT streams Oct 12, 2021
@mikevoronov
Copy link
Member Author

Fixed by #74

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement category: an issue proposing an enchacement or a PR with one
Projects
None yet
Development

No branches or pull requests

1 participant