Closed mdwheele closed 3 years ago
Hi @mdwheele! First of all, this is one of the best issues I've received on GitHub! Thank you for this. Any example repositories would be great. I had the idea to scratch an itch by creating one to propose and register ADR's. But it might be a bit too simple. Of course the classic work well too, as you proposed.
We are also very happy with eventsauce.
One thing we "copied" from broadway was their concept of entities inside the root aggregate, where the apply's are cascaded down to the entities. I'm wondering if this is something you would like to include / what are your thoughts on this or if you would tackle this problem differently.
https://github.com/broadway/broadway/tree/master/examples/event-sourced-child-entity
@arendjantetteroo have you got an example of this or an extraction of this on GitHub somewhere? Would love to see in which way you solved this, I've got some ideas but always good to see what somebody who already has it in place has come up with.
@frankdejonge i will try to get something up end of the week.
I also would like to contribute.
@mdwheele If you already started an example project, maybe we could split tasks between us, or we can split different examples together like
@mdwheele support for http://eventstore.org
If anyone who wants to team up with me for a coding session, I think this can be done with a few hours. I just lack any experience of event sauce but would like to give it a try with eventstore.org.
@burzum Do you have a lot of experience with Event Store, then? My Event Store experience has been pretty minimal but I'd love to learn more about it.
@simensen I wrote a complete event sourcing library for it using the https://github.com/prooph/event-store-client library to connect to it. It is not yet open source, I need to talk to my boss about open sourcing it. Sadly I just discovered event source after I was done with it. :( For whatever reason event sauce is pretty far down on the result page on google and it shows a video not a link as first hit mentioning event sauce for me. So I missed it... :( Otherwise we would probably use event sauce. Eventstore.org is good it gets the job done and seems to be faster than any SQL based solution. The prooph libraries are very well done as well. So I can recommend both.
@ahmed-alaa @burzum I think I have a solution for both of you guys. I have spent an afternoon and wrote an adapter between EventSauce
and Prooph/event-store
. It allows for AggregateRoots
and Events
created in EvensSauce
to be stored in any Prooph/event-store
implementation.
Pdo
implementation and its Stream StrategyHTTP
or TCP
client Prooph
has.I have so far tested it for \Prooph\EventStore\Pdo\PersistenceStrategy\PostgresAggregateStreamStrategy
and it works brilliantly.
You can find it here: https://github.com/Dance-Engineer/event-sauce-prooph-event-store
@patrickkusebauch I'll give it a try.
Currently, I'm using Prooph EventStore and long time ago, thought about this combination of EventSauce and Prooph EventStore with its strong persistence and projections part, but I had doubt about maintaining both packages and always have to make sure that any update in one of them is compatible with the other package.
but will check your repo and give it it a try ;)
Hey @frankdejonge!
First, I feel the need to say that "pragmatic event sourcing for PHP" is the PERFECT description of what 0.6 has achieved so far. I've worked with Prooph, Broadway and implemented my own ES stack 3 or 4 times after coming to feel that every one of them will be different and "building a ES framework is impossible!". I believe you have struck the best balance in small, focused interfaces to pull off the core without all the bloat and over-architecture present in other similar "frameworks".
Second, I want to contribute and promote this package. What do you need help with? As far as I can tell, the library is more-or-less feature complete (certainly enough for my own needs), but what is your "wish-list" of things you would add? Do we want some example projects? If so, do you have any suggestions on domains more complex than "To-do" or "banking", which seem to be the only event-sourced applications folks are building in the open :grinning:.
Anywho, thanks for putting time into this and I look forward to working with the project!