Comments (5)
getFromSnapshot simply returns a snapshot and depending on the version describing that snapshot you can handle it... for example you can convert it... i.e. https://github.com/adrai/node-cqrs-domain/blob/master/lib/definitions/aggregate.js#L652
from node-eventstore.
Hi @adrai,
Instead of creating a new issue, I prefer to ask my question here.
Actually, I have the same question: How could I easily get only the latest snapshot (with only the new events), without knowing the current revision ?
I'm using redis store, and it seems that the snapshots are all scanned by default (using revMax === -1
).
I was using snapshots to enhance performance because of a lot of events on an aggregate. But it won't if all snapshots are scanned.
And I don't have the current revision of the aggregate because the time I'm reloading the aggregate form a snapshot.
Looking at the code of redis storage, I thought passing 1
as revMax
would avoid many useless GET
on redis, because of these lines:
https://github.com/adrai/node-eventstore/blob/831698514af8bfb0d6d8c0f65e139250e1bb7b3a/lib/databases/redis.js#L579-L585
The snapshot keys are reduced to the last snapshot key.
But once the snapshot is loaded, it is filtered because its revision (usually above 1
) doesn't fit this filter:
https://github.com/adrai/node-eventstore/blob/831698514af8bfb0d6d8c0f65e139250e1bb7b3a/lib/databases/redis.js#L606
So I feel like, if I want the latest snapshot, I need to pass the the "real" revision, but by doing this, all of the snapshots will be loaded, hence causing some "n+1 selects" issue with no need.
Correct me if I'm wrong. Thanks for your awesome work. I would love to help.
from node-eventstore.
By the way, we can also reverse the question by asking: how is it possible to get the snapshot of revision 1
, if there is already a snapshot for revision 4
?
from node-eventstore.
Finally made a pull request to improve the way snapshots are loaded.
from node-eventstore.
Sorry, had no time to take a look at it...
Will look at it asap.
Thanks for your contribution.
from node-eventstore.
Related Issues (20)
- Mongo URL parser deprecated. HOT 2
- PostgreSQL data store HOT 4
- override commitStamp ? HOT 3
- Replaying events to rebuild aggregates HOT 2
- Release a new version with new lodash HOT 2
- Auto-reconnect MongoDB HOT 2
- Calling `es.init()` multiple times causes multiple `connect` & `disconnect` listeners to be added HOT 2
- When using tingodb, no more events are published after restarting app HOT 4
- Flag for dropping existing data when initializing? HOT 3
- Method for testing if there are any or how many events are stored? HOT 5
- MongoDB connection fails with current default options HOT 14
- DeprecationWarning: current Server Discovery and Monitoring engine is deprecated HOT 3
- User Interface HOT 1
- Question: Can I query snapshots by date? HOT 3
- MongoDB: "revision" field type should be casted to number when createSnapshot HOT 4
- [MongoDB] BUG: streamEventsByRevision omits first event and repeats last event. HOT 1
- Opposite of getEventsSince
- npm audit fail on dotty HOT 1
- Azure table is deprecated HOT 1
- batch workflows 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 node-eventstore.