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

Go Support v0.2.0 #41

Closed
marcellanz opened this issue Oct 11, 2020 · 3 comments · Fixed by #43
Closed

Go Support v0.2.0 #41

marcellanz opened this issue Oct 11, 2020 · 3 comments · Fixed by #43
Assignees

Comments

@marcellanz
Copy link
Contributor

marcellanz commented Oct 11, 2020

An issue collecting features and changes for the "Go Support 0.2.0" release:

  • CRDT Support
  • Eventsoured re-implementation
  • Integration Tests for the CRDT implementation, to be used for the TCK
  • Integration Tests for the Eventsourced implementation
  • Adoption of new Cloudstate Model based TCK tests
  • Protobuf cleanup for go packages
  • Eventsourced TCK Support
  • Eventsourced effects and forward support
  • Significant test coverage increase
  • Dapr contrib model support with new CRDT support
  • Chat example
  • CRDT Shopping Cart example
  • devcontainer.json Support
  • Updated documentation
  • CRDT and Effects & Forwards documentation

CRDT support has been added as the second state model supported. Together with the Eventsoured implementation, stream runners where introduced which enables multiple entities of the same id to be run at the same time. The first (kind of naive) implementation v0.1.x had a bug where solely one entity of the same id where able to run at the same time.

The Eventsourced support was re-implemented using the CRDT stream runner and its way to run a messages stream. Similar, error handing was adopted and also the new atomic command handling error behaviour with entity restart support has been added.

The Integration Tests for the CRDT implementation follow the new model-based approach of the Cloudstate TCK. They run with an in-memory gRCP Client and Server and are written in Go. These tests are yet not available in the Cloudstate TCK and complement them having local functional tests and also tests not done by the TCK itself.

The Protobuf cleanup for go packages where necessary because the go_package used so far, where incompatible and incorrect. This is fixed in this milestone and also fixed in the main Cloudstate repository.

With Eventsoured TCK Support also Eventsourced effects and forward support was correctly implemented and validated with the TCK.

A Significant test coverage increase was achieved with about 80 integration- and 150 unit-tests in this milestone.

Updated documentation and CRDT documentation is done with the new Antora based template.

The new API has been used in different contexts of available examples and public use of cloudstate. One is the Dapr contrib model support which uses a CRDT state model. This branch https://github.com/mrcllnz/components-contrib/tree/feature/cloudstate_crdt_support implements the Dapr Cloudstate component with the new Go API.

@marcellanz marcellanz added this to the Go Support v0.2.0 milestone Oct 11, 2020
@marcellanz marcellanz pinned this issue Oct 11, 2020
@sleipnir
Copy link

Great work @marcellanz thank you for all your effort and dedication in this work

@pvlugter
Copy link
Member

👍 🎉

@viktorklang
Copy link
Contributor

Wow—looks like a great release, @marcellanz! 👍

@marcellanz marcellanz self-assigned this Oct 16, 2020
@marcellanz marcellanz changed the title Go Support 0.2.0 Go Support v0.2.0 Oct 23, 2020
@marcellanz marcellanz unpinned this issue Nov 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants