Extending existing events facilitated by snapshots

For a existing project we need to extend an event with a new refId.
The refId becomes the new identifier for an entity hence, we would
prefer to deprecate the event without the refId. This is all needed
because we discovered that the old identifier wasn't unique.

At the moment this is not possible, because the old events remain in
the event store.
My idea is to enable the deprecation of the event by using a snapshot
event.

Is there already any progress on this feature?

regards
Roald

For some reason, this reply wasn't published on the website.
Therefore, here is the original reply again.

The creation and use of Snapshot Events is already included in the 0.6-
SNAPSHOT version.

Deprecating past events is not really possible, though. You can't
change what happened. A snapshot event will prevent any older event
from being loaded, so it will probably have the desired effect.

Hope this helps.

Cheers,

Allard

With the snaphot events, you can indeed "cheat" and prevent older
events to be loaded.

But I consider snapshots to only be an optimization (that is to avoid
replaying tons of events; I remember Greg Young telling us they were
"heuristics") and be "disposable", contrary to regular (domain/
application/system) events that are the truth (what happened, even if
they are errors) and that are "sustainaible".
We should be able to throw snapshots away to compute them again if
needed, therefore I would not rely on them to achieve what you
described.

I see two other ways to manage to live with these "wrong" events:
- append (publish) compensating events to the event store, events that
will "reverse" the effect of these problematic events;
- migrate (upcast) these events to new version of events at load time,
via event versioning (see issue #62 where Allard found a way to do
it).

Cheers,
Lionel.