Comments (6)
Like the idea on how to actually do this / see how you approach those. But wasn't this whole discussion about "people should not adapt the one provided style but use their own" the reason to move away from providing a template / framework?
I think those should be included in the two example projects and reflect the structures used there. Better supports the story of 'use your own patterns' while still being available for inspiration :)
from event-sourcing.
people should not adapt the one provided style but use their own
yeah, but we said that we want to provide a blueprint for those who don't know where to start.
The blueprint should not be composer installable but only be available as copy and paste so that people own the code and can adapt it whenever they feel the need.
There are a few flavors and I hope we can highlight the most important ones. You have to make some choices, but if you're new to Event Sourcing those details might scare you.
I try to provide an example soon so that we can better discuss pros and cons. An alternative could be that we say: prooph focuses on advanced event sourcing only, with the best event store available for PHP but not more. And we redirect all new users to either Event Machine or EventSauce and spend our OSS time on a stable event store + advanced CQRS / ES knowledge transfer.
I will definitely reuse and link to Event Machine docs (because I wrote them ;)) and use the new Fee Office domain for prooph docs as well.
Side note: Whenever possible I use Event Machine these days. The way it works fits perfectly with the way we need and want to implement projects: Extremely fast, but reliable and sustained development. This means that prooph/event-sourcing has no longer enough value for my team and I can't spent much time on maintaining it. If we want to provide something for the larger community, this definitely needs to be community driven. Small tutorials on how to implement and customize an event sourcing layer are hopefully the right way. I want to avoid all those discussions like: is prooph better or worse than other implementations? Is the project still actively maintained? I cannot do XYZ with prooph, can we open the API? .... This is all a way too much time consuming and since we use our own style (prooph software team), we are not really interested in any of these questions anymore.
from event-sourcing.
+1 for the idea. Although I agree in concept with reducing as much as possible the ties with frameworks at the domain level, having to recreate this for all projects, or within a larger company is too much. Not to mention the learning curve of the trial/error cycle for something that could be thought as a commodity.
Having a working blueprint (more then buttercup) with their pros and cons would help a lot imho. Focus the event sourcing with one event store (your own, or eventstore.org etc) and leave for the community to write adapters for the the others they want.
from event-sourcing.
I use PHPStorm live templates heavily and tried custom class templates (file templates) recently. You can do a lot of stuff with it. I generate immutable data types with a combination of live templates and class templates.
So my idea is to provide blueprints for event sourced aggregates and messages as PHPStorm templates. It's possible to share them so ppl can import the templates and customize them if needed. I'd say you get best of both worlds and PHPStorm is a de facto standard these days.
Thoughts?
wow thats great are you gona teach me?
from event-sourcing.
@MichaelVictor Regarding immutable data types you can read more about it in the Event Engine docs
from event-sourcing.
Superseded by #90
from event-sourcing.
Related Issues (20)
- Multiple Event Handlers HOT 5
- Change event handling methods HOT 8
- Exceptions will be thrown if aggregate has no pending events HOT 4
- Remove ConfigurableAggregateTranslator? HOT 1
- Remove JsonSerializable mock
- Snapshot args incorrect HOT 6
- New beta release HOT 1
- Aggregates not automatically saving HOT 4
- AggregateType in RepositoryFactory HOT 4
- Why MapIterator? HOT 1
- Keeping up with PHP versions HOT 1
- Move 'aggregateId' up HOT 3
- Keep/add the aggregate in the indentity map after saving HOT 2
- How to check if an aggregate ID exists? HOT 28
- Delay event uuid generation until it is requested or external generator supplied HOT 8
- Missing aggregate ID HOT 6
- Allow encapsulation of AggregateRepository HOT 1
- Use DossierAggregateRepository::get() with ID of different AR Type HOT 4
- Prooph Event Sourcing Revival HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from event-sourcing.