Trogon.Commanded.ConsistencyPolicy.ExactVersionPolicy (Trogon.Commanded v0.39.0)

Copy Markdown View Source

Consistency policy that returns only if projection.version == required_version. Fails immediately with VersionMismatchError if version has moved past required.

Summary

Types

Positive integer milliseconds.

Options for new!/1. Accepts Duration or integer milliseconds for timeout/delay.

t()

Returns only if projection.version == required version. Fails if version moved past.

Required projection version (event stream position).

Functions

Build policy from protobuf Consistency with exact_version requirement.

Convert policy to protobuf Consistency.

Types

milliseconds()

@type milliseconds() :: pos_integer()

Positive integer milliseconds.

opts()

@type opts() :: %{
  version: version(),
  timeout: Duration.t() | milliseconds(),
  delay: Duration.t() | milliseconds()
}

Options for new!/1. Accepts Duration or integer milliseconds for timeout/delay.

t()

@type t() :: %Trogon.Commanded.ConsistencyPolicy.ExactVersionPolicy{
  delay: milliseconds(),
  timeout: milliseconds(),
  version: version()
}

Returns only if projection.version == required version. Fails if version moved past.

version()

@type version() :: non_neg_integer()

Required projection version (event stream position).

Functions

from_proto(proto)

@spec from_proto(TrogonProto.Consistency.V1Alpha1.Consistency.t()) :: t()

Build policy from protobuf Consistency with exact_version requirement.

Uses defaults (5s, 100ms) when proto omits durations.

new!(map)

@spec new!(opts()) :: t()

to_proto(policy)

@spec to_proto(t()) :: TrogonProto.Consistency.V1Alpha1.Consistency.t()

Convert policy to protobuf Consistency.