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.
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
@type milliseconds() :: pos_integer()
Positive integer milliseconds.
@type opts() :: %{ version: version(), timeout: Duration.t() | milliseconds(), delay: Duration.t() | milliseconds() }
Options for new!/1. Accepts Duration or integer milliseconds for timeout/delay.
@type t() :: %Trogon.Commanded.ConsistencyPolicy.ExactVersionPolicy{ delay: milliseconds(), timeout: milliseconds(), version: version() }
Returns only if projection.version == required version. Fails if version moved past.
@type version() :: non_neg_integer()
Required projection version (event stream position).
Functions
@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.
@spec to_proto(t()) :: TrogonProto.Consistency.V1Alpha1.Consistency.t()
Convert policy to protobuf Consistency.