The aggregate model class models an Aggregates (Aggregate roots) type. This is a way of uniquely identifying "something" that events can occur to and which we wish to track as part of our business model.

Each AggregateModel class has a collection of EventModel class records that detail all of the event types that can occur to that aggregate, along with their properties. It also has a collection of ProjectionModel class that detail the Projections that can be run over that event stream.

  • Name - The unique name by which the aggregate is known
  • KeyType - The simple data type that the unique key of this aggregate is made of
  • KeyName - The name by which the property which provides the unique key for this aggregate is known. (This defaults to "Key" if there is no meaningful business key name)
  • Events - The set of events that can occur for this aggregate
  • Projections - The set of projections defined for this aggregate
  • Command Definitions - The commands that can be executed against this aggregate
  • Query Definitions - The defined queries that can be run against this aggregate


The aggregate identifier "Team" (in the top left of the diagram)

Last edited Jun 13, 2015 at 6:47 AM by Merrion, version 3