Skip to main content

Building Blocks

··1 min

Processes #

  • Models a lifetime of an entity.
  • Described by a state machine.
  • State changes in response to Commands or Events.
  • Publish Events on state change.
  • Retain history of events for auditing, inspection.
  • Uses versioning/etags to ensure data integrity.
  • Uses CQRS interfaces.

Data Objects #

  • Models the current state and properties of an entity.
  • Described as a hierarchical data model (a document).
  • State changes in response to Create, Update, Delete (CRUD) operations, that replaces the entire object of parts thereof.
  • Publish a “Created”, “Updated” of “Deleted” event on state changes.
  • Retain history of versions for auditing.
  • Uses versioning/etags to ensure data integrity.
  • Uses CQRS or CRUD interfaces.

Audit Records #

  • Models the history of the state and properties of an entity.
  • Described as a hierarchical data model (a document).
  • Can only be created, not modified or deleted.
  • Typically only created in response to an event, and do not need to publish themselves.
  • Uses sequence indicators to ensure order correctness.

Reports #

  • Models an aggregated view of a collection of entities.
  • Representation depends on context.
  • Calculated data.
  • Typically generated by another entity, which is responsible for publishing events if needed.