event-sourcing : StreamCursor générique avec advanceCursor #16
Labels
No labels
bug
enhancement
pr-split
question
security
transaction-matcher
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
momsse/octant#16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue de la review de la PR 04 (#34, commentaire inline sur
user.stream-cursor.ts).UserStreamCursor+advanceCursor(packages/domain/authentication/src/application/entities/user.stream-cursor.ts) sont entièrement génériques dans leur logique :{streamId, state, version}+ fold des events appendés viaaggregate.reconstitute+ avance de version. Rien n'y est spécifique à User à part les types.Proposition
Remonter le concept dans
@octant/event-sourcing:(ou méthode sur
AggregateShape— à arbitrer : fonction libre paramétrée par l'agrégat vsaggregate.advanceCursor(cursor, events)qui évite de passer l'agrégat à chaque appel).user.stream-cursor.tsdevient un simple alias de type (UserStreamCursor = StreamCursor<UserState>) ou disparaît, et les use-cases de la PR 05 (authenticate,refresh-expiring-account-tokens) consomment la version générique.Timing
Après le merge de la PR 04 — peut se faire en même temps que #15 (PR 4b) ou s'intercaler n'importe où avant la PR 05, qui contient les deux call-sites.