question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Version 3 discussion

See original GitHub issue

This issue is created to track discussion about upcoming version 3 of CosmoStore and what should be its main goal. For me it is mainly about making EventStore “JSON payload representation agnostic” (in other words, do not force to use JToken) since Microsoft itself annonced new JSON API and moving away from Newtonsoft.Json coupling it its libraries. It will also allow to add other stores like LiteDB without unnecessary transformation to JToken and back.

Technically it should be quite easy to make EventWrite, EventRead and EventStore generic like:

type EventWrite<'a> = {
    Id : Guid
    CorrelationId : Guid option
    CausationId : Guid option
    Name : string
    Data : 'a
    Metadata : 'a option
}

Also upgrading existing libraries should be straightforward, so version 3 could be done pretty quickly.

Any other ideas? cc: @kunjee17 @ctaggart @TheAngryByrd @viktorvan

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:42 (31 by maintainers)

github_iconTop GitHub Comments

2reactions
bartelinkcommented, Sep 19, 2019

I agree its too late to do a breaking change and would put this sidenote-comment on gitter if you had one 😉

My point is that this doesnt align with EventStore and SqlStreamStore - I personally had an abstraction one-based at one point but realised in time: one-based in practice is actually agonising to work with because it doesnt align with [typically zero based]array indexing.

On the plus side, you’re in alignment with VB (the one before VB.NET) 😉

2reactions
Dzoukrcommented, Sep 18, 2019

Perfect. I’ll leave it up to you. I will abstract some tests because of position is not fixed type - it is up to each implementation what to use (even in tests). Thanks again @TheAngryByrd for good idea about that.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Is push 3 controller version really a major update discussion?
Hey guys, just wondering if you are going to be getting the push 3 if you havent already pre-ordered yours and is it...
Read more >
Mirai Nikki Episode 3 Discussion - Forums
Read the topic about Mirai Nikki Episode 3 Discussion on MyAnimeList, and join in the discussion on the largest online anime and manga ......
Read more >
Discussion Builders Poster, Grades 2-3 (Spanish Version)
The grades 2-3 Discussion Builders poster and teaching guide are designed to cultivate a respectful community of learners where the goal is to...
Read more >
Blog: create-tauri-app Version 3 Released #1137
We were working on re-introducing sveltekit including an in-depth guide (discussion where we collect feedback: Experience With Tauri + SvelteKit tauri#6423 ...
Read more >
Publications Archive » TNFD
Spanish Language Version (Versión en español) · French Language Version ... The TNFD Nature-related Risk and Opportunity and Disclosure Framework beta v0.3.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found