Comments (3)
You're right, event-engine becomes event-machine 2.0. Unfortunately, we had to change the name due to naming conflicts with other existing projects and services. Other than that, event-engine is very similar to the concepts used in event-machine. We've added new features and refactored the core.
Highlights
- prooph/service-bus is gone, event-engine takes over message routing as it holds the config for it anyway
- prooph/event-sourcing is gone, was used internally and is now replaced with an engine specific aggregate root + repository. Both are important for the new MultiModelStore-Feature
- Project-specific event store interface: prooph/event-store v7 is still the work horse behind the scenes but an event-engine specific interface makes sure that either event-store v8 or custom store implementations can easily be used together with event-engine. We only require a small feature set and give the event store implementation a lot of freedom to satisfy the contract
- Multi-Model-Store: event-machine already ships with a document store interface + a postgres, mongodb and in-memory implementation. An "aggregate-projection" can be used together with the document store to make permanent snapshots of aggregate state. We took this idea a step further in event-engine. It is now possible (and it's the default) to store recorded events + the state snapshot of an aggregate in one go if both are stored in the same database and the database supports transactions. This gives you a strong consistency of aggregate state similar to an ORM. But domain events are still the driving factor and you can switch to async snapshots or events only at any time.
There are some more new features, but they are subject for a detailed blog post.
Roadmap
Event-Engine is in an experimental state. We still point users to event machine. We try to keep the public API of event engine as close to event machine as possible, so that an upgrade is possible without too much effort. However, the namespace change alone requires effort. We're sorry for that but it's the only possible way to move forward.
We got the chance to use the new event engine in an existing project wich was built on top of prooph v6 initially. Switching to EE was a smooth process and we could shutdown some projections by replacing them with the new permanent snapshot feature of EE. The system handles > 100.000 aggregates with > 10.000.000 events. A good first proof that EE works as expected.
Event Machine v1.0
Last tests are running this week then it's time to tag a first event engine dev version: v0.1
This is also the trigger for a final Event Machine release: Event Machine v1.0. Along with the release I'll publish an official roadmap.
EE Split
Aftet event engine v0.1 we start splitting the package. You might already noticed that the current package is more or less a mono repo containing multiple namespaces. We put them together for initial development, but the plan is to split them into smaller packages for better re-usability and easier exchange.
EE Docs
Next step is to move the docs + tutorial from Event Machine to EE and complete them.
EE Hardening
Last step before a EE v1.0 is a rock solid test suite. Many new features don't have extensive tests yet. We add then and test them in the wild due to time constraints. Not a solid foundation for a stable package but acceptable for an experimental one.
EE PaaS
This roadmap goes hand in hand with work not visible on Github ;) EE will be available as a PaaS offer, too. The PaaS will include features that go beyond plain software development. An official announcement can hopefully be made in two or three months.
I hope this answers your question for now. Thank you for your interest in Event Machine and Event Engine!
from php-engine.
@codeliner THANKS A LOT for the detailed reply, hope everything goes smoothly as planned.
Can't wait to test v0.1 and give you our feedback.
from php-engine.
Here we go: https://github.com/event-engine/php-engine/releases/tag/v0.1.0
from php-engine.
Related Issues (14)
- Check uniqueness of Command, Query and Event names HOT 3
- meaning of CommandDispatchResult HOT 4
- EventEngine::rebuildAggregateState does not work as expected with MultiModelStore HOT 1
- Using the specification pattern in combination with Event Engine HOT 4
- Describe differences between original project and fork HOT 1
- How does migration work? HOT 2
- Next Gen Event Engine
- Context Providers should also receive the state if exists HOT 2
- Support dedicated dispatcher for commands
- Method fromCachedConfig should only load config
- Cannot rewind a generator that was already run HOT 3
- Process manager in event-engine HOT 2
- Restore aggregate root in event engine HOT 5
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 php-engine.