Comments (1)
Hi, first of all, I like the v2 docs. The Getting familiar with event sourcing part helps a lot for me.
Great to read this is useful for you! 👍
Base on the aggregate example, we use an accounts table to recording the account balance. But we have all events already and can reconstituteFromEvents() to the aggregate, so we know the balance number actually, can we just use the aggregate ? Or the accounts table is a kind of snapshot in the event sourcing system ?
Great question, I had the same question too when learning all this.
The only function of the aggregate is to decide which events should get written. It should not try to write any other state itself, nor should other parts of your system depend on the internal state of the aggregate.
So, the aggregates is responsible for deciding if the balance may change. If other parts of your system are interested in the actual balance, create a projection that persist the balance and query that.
The other question is about projector. If two projectors want to handle one event, how will they execute in sequence ? Follow the items of projectors array ?
I think so.
from laravel-event-projector.
Related Issues (20)
- Reduce configuration with magic HOT 1
- Create new storable event by artisan command doesn't run HOT 4
- Event Streams in V2 HOT 1
- Upgrading an app that was using event streams? HOT 1
- replay command does not support --force flag HOT 2
- Changing projectors / reactors dependency implementations during tests HOT 4
- Question? any way to use aggregators to check whether the balance has been tampered with automatically before adding or subtracting money or the balance? HOT 1
- Replay events when AggregateRoot::$storedEventModel used HOT 1
- [Feature Request] Optimistic concurrency control HOT 1
- get the uuid in reactor HOT 3
- Docs link in README throws 502 error HOT 1
- [Question]: how does this package handle failed jobs when using async queue? HOT 2
- Projector priority when replaying HOT 2
- Allow aliases for stored event classes instead of persisting FQCN to DB HOT 2
- Support for ephemeral events HOT 4
- artisan make:projector command not working after upgrade from v1 -> v2 HOT 2
- Cannot add metada after upgrading to v3 HOT 11
- Replay events with no-interaction flag
- Update Doc V3 installation HOT 1
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 laravel-event-projector.