--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/77b800e1-5e4f-42c3-9b6f-8911cb9a2f19%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAJT18iaPkGOqS_c%3DvSDVhadaxD1x0%3DMEU3-Spph5RDVDAPstuA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAJ7md6WgZcGZX7nTvzkHqEZF9AG%2BRjkFhSJ-ZNHjHP71m4ULng%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAJ7md6WgZcGZX7nTvzkHqEZF9AG%2BRjkFhSJ-ZNHjHP71m4ULng%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CACL874OKp_y6zEmxaUw1-6Pv6oeH2c8uwkeStszgZjuOtLZHfQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/7e0d8034-7e00-4e33-a932-3d26d7cdb5e0%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAAKqwiEwcGeY48k0rfn6S2F4hdqNOmXrP-Nt2xmbLfYP5ts5-Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
TL;DR
It's not practical, given the alternatives.
Here is how simple it is to see.
Storing events in Kafka by aggregate type, I.e events for multiple aggregates in a single stream, is not scalable as far as the command side goes.
Storing a single aggregate per topic, which would be required to solve the above, is not scalable based on Kafka's core design.
End of discussion.
The frustrating part is, you have the makers of Kafka running around saying event sourcing us a use case. Let's investigate this.
If you look at the material from Kafka, they have a slightly different version of event sourcing. They have confined their definition to be, that you can derive new applications "downstream" of the publisher, I.e the read side of the equation. Now, this is true, but they have no mention of how to use Kafka as an event store for the command, or write side. That's not a mistake. Kafka itself does not have the features baked in to achieve the guarantees required by an event sourced application. Optimistic concurrency, is but one.
While it is true, you can do a bunch of stuff, to get it "working" such as using a single writer, you gotta ask, is it worth it?
There are better features baked into your existing rdbms for this than Kafka.
On the other side though. I love Kafka for distributing events downstream. It's absolutely perfect for this, it's what it was designed for. Combine this with Kafka connect and CDC, you can quite easily have the write side operating with the required level of consistency, and keeping your write and publish action atomic.
So stop hacking the tool, Kafka, to meet your needs. There are much more practical alternatives, but definitely consider Kafka for your event distribution, it wins at that.
> First question I have is what's wrong with simpleCqrs ?
I am dealing with 56K RPM (and a lot of database transactions), the good thing is that most of those aggregates have a short lifespan but still more than 100 aggregates (big system)So I can't simply roll with SimpleCQRS if I want to make it to production, right now I am just focused on enabling the infrastructure so others can take advantages of it, whichis why I don't want to use any framework as well (but again I need to double check what I am doing)
I have to think about snapshots, how to manage a lot of streams, and even how to deal with multi-zones
> One issue with the above model Kafka model is its hard (very) to validate.. You want to validate before you create the event and the read model is eventually consistent. Especially parents and children.
This is why I want to put GraphQL to have some validation layer in front of the message bus.
> . A UI you can sometimes trust, much less so for an API . So how do you validate if the parent exists , when the create parent message is in the kafka stream waiting to be processed ?
I got lost here.> Do you read all events and try to find a create message ? ( performance with a lot of events and gets harder with more complex validation)What do you mean?I would probably send to a centralize Command Event stream that then bifurcate to a better stream more focus in particular aggregate, still thinking what should I do.
> With millions of streams you can simply go does stream exist or build up the state from reading a *few* events to validate and prevent creation of bad events. There is much discussion on set based validation.
Yeah this topic about valdiation, hopefully GraphQL will help me a lot with it
Kinesis has a maximum retention policy of 168hrs. So you're right it won't work. Great for distributing events downstream though.
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/8bf5c40c-e724-4241-b177-88d30147542d%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAAKqwiGEyr02Bc1h3Tt0ZQcrtZTM67TMpS%3Dpjf1%2BrmLpEG5BdQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/de0619e9-d6e1-469f-866c-c417ea4e0d67%40googlegroups.com.
So it is hard for me to understand where you are coming from when you say Kafka will no work when for the most partbig companies are leveraging the technology just fine, the same with Kinesis, where it makes sense.
I wouldn't use Kafka as my Event Store (I would probably use S3 or any other database), but I would definitely tryto use Kinesis or Kafka for my message bus and all these messes of streams.
I started doing everything with just Erlang and GenServer, and Actor model and those things,until I realized that I am adding complexity to my plate for no reason dealing with things that those toolsalready figure it out, or at least they are one step ahead of me.
So again, when you say Kafka will no scale, Kafka will no work and so on, I am having such a hard timeunderstanding you.Maybe I am missing something
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/de0619e9-d6e1-469f-866c-c417ea4e0d67%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
> Just want to make sure that I didn't misunderstand because I wouldn't use Kafka for my Event Store for sureThe sad reality is that certain vendors are pushing their products that are clearly not event store databases as databases.
--
You received this message because you are subscribed to the Google Groups "DDD/CQRS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dddcqrs+u...@googlegroups.com.
Visit this group at https://groups.google.com/group/dddcqrs.
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/CAJT18iarCWtusbTJ%2BSTaX%2BKGXiAkUxWAbhGkn6DJ_ewL0f7YWA%40mail.gmail.com.
What about people from the NYT? I thinkThey put all the information into Kafka topics and call it a day.Do they all have little experience and don’t know what they are doing?
For me has more helpful to read about the organization of Kafka streams and how I could architect them, since this was the struggle.Btw, would you prefer to have multiple event store or a centralized one?
To view this discussion on the web visit https://groups.google.com/d/msgid/dddcqrs/B82D62EC-DEF9-433D-A951-357CD45C0A6A%40gmail.com.
For more options, visit https://groups.google.com/d/optout.