Dzoukr / CosmoStore

F# Event store for Azure Cosmos DB, Table Storage, Postgres, LiteDB & ServiceStack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Agreegate in CosmoStore

kunjee17 opened this issue · comments

I don't know if that is good idea or now. But CosmoStore (API library) should have agreegrate type as well. (totally inspired by your blog)

It will help for user to have little less code to have. Even I m in favor of any other generic helpers we can provide which can help end users (Not the Store Creators like us) to write ES based systems easily.

Haven't thought of thoroughly but these includes but not limited to Agreegate, ReadDB, Projection Support etc etc.

I don't want to overwhelm user or bound with some way of doing things but if something usual is there we can surely help them.

As I am with you with most of ideas and like them, this one I don't agree. CosmoStore always had one and only goal - just be solid event store for F# (initialy only for Cosmos DB). It is not meant to be swiss knife for event sourcing. The reason here is that every devs has own opinion about how should projections / aggregates look like and what is the best approach.

I don't want to force anyone (even on passive level) to use Aggregate type as I described in my blog post. I mean... I still like it, but there will be probably another topic regarding versioning, where every change in Aggregate should be versioned so there is no just one Aggregate, but there are more of them depending when you want to apply events (like for example tax laws - each year different rules and you must apply events in respect to when did it happen). So it's getting more and more complicated and goes way beyond scope of simple event store for F#.

I love how you want to help others stepping into event sourcing (really!), but I don't think it belongs here. Maybe starting another project aiming to be swiss knife for event sourcing? I'd love to see something like that.

Got your point. Agree with it...