From dff56568d510a6f6a818d8df7162ee1e81eeb09d Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 23 Jul 2026 11:29:29 +0200 Subject: [PATCH] docs: mention Forgettable payloads in README advanced features Co-Authored-By: Claude Fable 5 --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 0ced8dff..e6e7d902 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,26 @@ pub struct Orders { } ``` +### Forgettable payloads + +Events are immutable, but regulations like GDPR require deleting personal data. +Wrap fields in `Forgettable` to store their values outside the event stream, +so they can be permanently deleted via `forget()` without rewriting event history: + +```rust +#[derive(EsEvent, Serialize, Deserialize)] +#[serde(tag = "type", rename_all = "snake_case")] +#[es_event(id = "CustomerId")] +pub enum CustomerEvent { + Initialized { + id: CustomerId, + name: Forgettable, + }, +} +``` + +See the [Forgettable Data](https://galoymoney.github.io/es-entity/forgettable.html) chapter of the book for details. + ## Testing The entity style is easily testable. Hydrate from events, mutate, assert.