These are chat archives for damianh/Cedar

26th
May 2015
Damian Hickey
@damianh
May 26 2015 17:46
@dcomartin Hi! You there?
Damian Hickey
@damianh
May 26 2015 18:15

@dcomartin My time timzone is UTC + 2, I guess you are a few to several hours behind. Am preparing for vacation now so I'll leave this here...

Firstly, many thanks for offering to help with a MySql impl. :)

I'm still tuning the Cedar ES philosophy but the key parts are in the repo readme. My driving needs are that I need an ES that supports RDBMS for on-prem installs because I'm not going to be able convince our conservative customers to install & maintain GetEventStore. On the other hand, for our cloud backed services, I want us to be able to leverage GetEventStore where desirable. Thus I'd like an API and behavior that works as similarly as possible regardless of RDMBS vs GES (yes, there is always some leakiness). It also provides a smoother migration path for teams adopting ES and maturing to GES in their systems.

A key difference between this and NEventStore is that I'm not interested in supporting nosql stores. I am of the opinion that if one is in the position of choosing a NoSql solution (i.e. mongo, big-table-whateva) you should be in a position to use GES or write your own specialized ES. I also don't care for a whole lot of the other configurable stuff such as compression and encryption. It was hardly used in practice.

If this rocks your boat, I'd be delighted if you could contrib a MySql impl. But.. I'd also need you to assist in maintaining it. (I'll set up Github org etc). That includes hanging out here etc until it's v1 and around major versions.

Derek Comartin
@dcomartin
May 26 2015 18:54
That's pretty much is directly inline with the reason for wanting to get MySQL support in there. The three seemingly always possible situations for me are SQL Server, MySQL and to a lesser degree Postgres. I'm working on a project now using NES with MySQL that could eventually migrate to GES, hence why this is directly inline with what I'm after.
Damian Hickey
@damianh
May 26 2015 18:54
Cool.
Derek Comartin
@dcomartin
May 26 2015 18:55
FYI im UTC -5 (well -4 DST)
Damian Hickey
@damianh
May 26 2015 18:57
I found the SQL abstractions (dialects) in NES too difficult to work after they has grown to where they are now. In CES each store will be entirely independent. I also want to leverage things like SqlDependency for low latency event subscriptions.
And whatever the equivalent is in the other RDBMS stores...
So heads up on where I am. I'm about to land MsSql impl that supports the ReadStream, ReadAll, and Delete API and most of that behaviour
i.e. things like ExpectedVersion as well as reading backwards.
I haven't nailed the full idempotency behaviour though, need to think about that.
What is missing is the MetaData and Subscription APIs - that'll be in the coming weeks
I'm also not happy with the metadata paramater of the AppendStream / ReadStream APIs, so there will be some changes there.
So for yourself, you may_ want to wait a little bit until I've got these APIs and baked the MsSql for a bit, _or you can start early and give feedback / influence. Up to yourself :)
Damian Hickey
@damianh
May 26 2015 19:02
(formatting fail there)
Derek Comartin
@dcomartin
May 26 2015 19:03
I'll talk a look at mssql impl and also think about the sqldependency. I know MySQL has some impl of it in the MySql.Data .NET Connector but its internal impl is much diff
Damian Hickey
@damianh
May 26 2015 19:05
The default impl could always be polling
Damian Hickey
@damianh
May 26 2015 19:13
Now All I need is someone to do an oracle version :|
@thefringeninja Thanks for volunteering