Skip to content
This repository has been archived by the owner on Mar 11, 2022. It is now read-only.

Implement cloudstate.crdt.Crdt Service #17

Closed
21 tasks done
marcellanz opened this issue Nov 11, 2019 · 7 comments
Closed
21 tasks done

Implement cloudstate.crdt.Crdt Service #17

marcellanz opened this issue Nov 11, 2019 · 7 comments
Assignees
Labels

Comments

@marcellanz
Copy link
Contributor

marcellanz commented Nov 11, 2019

Implement the cloudstate.crdt.Crdt Service from protobuf/protocol/cloudstate/crdt.proto

Tasks

  • CRDT Service
    • State Handling
    • Command Handling
      • Non-Streamed
      • Streamed
    • Cancellation
    • "Callbacks"
    • Context API
  • GCounter
  • PNCounter
  • GSet
  • ORSet
  • Flag
  • LWWRegister
  • ORMap
  • Vote
  • apply new context based API to the evensourced API
  • verify implementation (TCK, CrdtSpecs(?))
    • Currently blocked by Evolve the TCK cloudstate#316, but marking progress on the issue to have a
      TCK capable to verify the CRDT state model.
    • TCK verification is replaced by functional tests.
  • presence example
  • paradox documentation => see CRDT Antora documentation #36
  • Optional: provide CRDT protocol spec feedback (mainly for clarification without reading the implementation)

WIP-branch
https://github.com/cloudstateio/go-support/tree/feature/crdt_support

@marcellanz marcellanz self-assigned this Nov 11, 2019
@marcellanz
Copy link
Contributor Author

Working on it.

@viktorklang
Copy link
Contributor

@marcellanz Very cool, Marcel! (Ping @jroper)

@viktorklang
Copy link
Contributor

Woot! very nice progress here, @marcellanz!

@sleipnir
Copy link

Awesome @marcellanz

@marcellanz marcellanz added the enhancement New feature or request label Apr 3, 2020
@marcellanz marcellanz added this to the v0.2.0 milestone Apr 18, 2020
@marcellanz
Copy link
Contributor Author

Input from #27:

in future, we may add features to Cloudstate where we start up additional versions of the same entity, for example, we might offer some built in temporal loading support, where users can say "run this command against this entity in the state that it was in at this point of time in history". To do that, we would create a new entity context for that, even if an existing one already existed on that node, and replay the journal up until that time before running the command.

The current CRDT runner should do the same for EventSourcing and any other state model.

@marcellanz
Copy link
Contributor Author

TCK verification is replaced by functional tests.

@marcellanz
Copy link
Contributor Author

"Optional: provide CRDT protocol spec feedback (mainly for clarification without reading the implementation)" is captured in a separate issue: #40

@marcellanz marcellanz unpinned this issue Oct 23, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants