# Trogon.Commanded v1.0.0 - Table of Contents

Extend Commanded package

## Pages

- [Trogon.Commanded](readme.md)
- [Changelog](changelog.md)

## Modules

- [Trogon.Commanded](Trogon.Commanded.md): Extend `Commanded` package. A swiss army knife for applications following Domain-Driven Design (DDD), Event Sourcing
(ES), and Command and Query Responsibility Segregation (CQRS).

- [Trogon.Commanded.Aggregate.StatelessLifespan](Trogon.Commanded.Aggregate.StatelessLifespan.md): Stops the aggregate after a command, event or error.

- [Trogon.Commanded.CommandHandler](Trogon.Commanded.CommandHandler.md): Defines a module as a "Command Handler". For more information about commands, please read the following
- [Trogon.Commanded.CommandRouter](Trogon.Commanded.CommandRouter.md): Command routing macro to allow configuration of each command to its command handler.
- [Trogon.Commanded.ConsistencyPolicy](Trogon.Commanded.ConsistencyPolicy.md): Eventual consistency policy for projection queries with read-after-write guarantees.
- [Trogon.Commanded.ConsistencyPolicy.ExactVersionPolicy](Trogon.Commanded.ConsistencyPolicy.ExactVersionPolicy.md): Consistency policy that returns only if `projection.version == required_version`.
Fails immediately with VersionMismatchError if version has moved past required.

- [Trogon.Commanded.ConsistencyPolicy.MinVersionPolicy](Trogon.Commanded.ConsistencyPolicy.MinVersionPolicy.md): Consistency policy that retries until `projection.version >= required_version`.

- [Trogon.Commanded.ConsistencyPolicy.VersionedData](Trogon.Commanded.ConsistencyPolicy.VersionedData.md): Wraps query result data with its version number.
- [Trogon.Commanded.EventStore.JsonbSerializer](Trogon.Commanded.EventStore.JsonbSerializer.md): A JSONB serializer based on events defined by `Trogon.Commanded.Event`.
- [Trogon.Commanded.EventStore.ProtobufJsonbSerializer](Trogon.Commanded.EventStore.ProtobufJsonbSerializer.md): A JSONB serializer using `Protobuf.JSON`.
- [Trogon.Commanded.Helpers](Trogon.Commanded.Helpers.md): A Swiss Army Knife Helper Module.

- [Trogon.Commanded.Id](Trogon.Commanded.Id.md): A module for dealing IDs.

- [Trogon.Commanded.ProtobufMapper](Trogon.Commanded.ProtobufMapper.md): Protocol for encoding and decoding `Protobuf` structs.
- [Trogon.Commanded.QueryHandler](Trogon.Commanded.QueryHandler.md): Defines a module as a "Query Handler". For more information about queries, please read the following
- [Trogon.Commanded.TypeProvider](Trogon.Commanded.TypeProvider.md): Implements `Commanded.EventStore.TypeProvider` behavior. Using macros to generate the behavior.

- Struct
  - [Trogon.Commanded.Aggregate](Trogon.Commanded.Aggregate.md): Defines "Aggregate" modules.

  - [Trogon.Commanded.Command](Trogon.Commanded.Command.md): Defines "Command" modules.

  - [Trogon.Commanded.Entity](Trogon.Commanded.Entity.md): Defines "Entity" modules.

  - [Trogon.Commanded.Enum](Trogon.Commanded.Enum.md): Defines an Enum type module.

  - [Trogon.Commanded.Event](Trogon.Commanded.Event.md): Defines "Event" modules.

  - [Trogon.Commanded.ValueObject](Trogon.Commanded.ValueObject.md): Defines "Value Object" modules.

- Test Support
  - [Trogon.Commanded.TestSupport.CommandHandlerCase](Trogon.Commanded.TestSupport.CommandHandlerCase.md): This module helps with test cases for testing aggregate states, and command handlers.

- Exceptions
  - [Trogon.Commanded.ConsistencyPolicy.TimeoutError](Trogon.Commanded.ConsistencyPolicy.TimeoutError.md): Consistency check timed out waiting for the required version.

  - [Trogon.Commanded.ConsistencyPolicy.VersionMismatchError](Trogon.Commanded.ConsistencyPolicy.VersionMismatchError.md): Requested version does not match the current version.

  - [Trogon.Commanded.TypeProvider.UnregisteredMappingError](Trogon.Commanded.TypeProvider.UnregisteredMappingError.md)

