Skip to content

v1.7.0

Choose a tag to compare

@javiertoledo javiertoledo released this 28 Feb 10:58
· 443 commits to main since this release

This release do not introduce API changes, but it includes a significant update of the Booster core logic, including bug fixes and optimizations:

  • An exception raised in a reducer no longer stops the entire event pipeline (Solving #1254)
  • Now, when a reducer can't process an event, the entity reduction process is stopped and logged. Events represent already committed changes that can't be rejected, so a failing event reducer is considered a bug that needs to be fixed. Once the bug is fixed, Booster will retry the failing events and continue, making it easier to recover from failures.
  • The ways that entity state were calculated when updating read models or responding to a Booster.entity read have been unified.
  • Entity snapshots are now calculated lazily and are cached to avoid the same list of events being reprocessed several times. Reprocessing events can still happen in situations of very high throughput, but this operation is idempotent and won't have any effect.
  • An eventual failure (i.e., quick network outage) while storing a snapshot will no longer throw an error, as snapshots are just cached data. A new snapshot will be created and cached the next time the entity state is visited.
  • The processes to store an event or store a snapshot have been logically separated and are now type checked.