Skip to main content

IdempotentProjection

Trait IdempotentProjection 

Source
pub trait IdempotentProjection {
    type Event: DomainEvent;
    type Cursor;
    type Error;

    // Required method
    fn apply_once(
        &mut self,
        event: &Self::Event,
        checkpoint: &ProjectionCheckpoint<Self::Cursor>,
    ) -> Result<ProjectionApplication, Self::Error>;
}
Expand description

English: Exposes core 0.4’s domain, persistence, and event-workflow API.

日本語: コア 0.4 のドメイン、永続化、イベント処理 API を公開します。 English: Exposes typed projection progress and synchronous/asynchronous checkpoint and duplicate-aware application ports.

日本語: 型付きのプロジェクション進捗と、同期・非同期のチェックポイント保存および重複を区別する適用ポートを公開します。 English: Opt-in projection contract distinguishing new application from duplicate input.

This trait is independent of crate::Projection and ProjectionCheckpointStore. Implementations supply duplicate detection, input identity, read-model changes, and any atomic checkpoint updates or locking. No deduplication algorithm is implemented here; adapters must define failure, retry, and panic behavior for their persistence boundary.

日本語: 新規適用と重複入力を区別する、任意のプロジェクション契約です。

このトレイトは crate::Projection と ProjectionCheckpointStore から独立しています。 重複検出、入力の識別、読み取りモデルの変更、原子的なチェックポイント更新やロックは 実装が提供します。ここでは重複排除アルゴリズムを実装しません。永続化境界における 失敗、再試行、パニック時の挙動はアダプターが定める必要があります。

Required Associated Types§

Source

type Event: DomainEvent

English: Domain event inspected for application to the read model.

日本語: 読み取りモデルへの適用を判断するドメインイベントです。

Source

type Cursor

English: Position type used to associate input with projection progress.

日本語: 入力とプロジェクションの進捗を関連付ける位置の型です。

Source

type Error

English: Error raised while detecting duplicates or applying an event.

日本語: 重複の検出やイベント適用中に生じるエラーです。

Required Methods§

Source

fn apply_once( &mut self, event: &Self::Event, checkpoint: &ProjectionCheckpoint<Self::Cursor>, ) -> Result<ProjectionApplication, Self::Error>

English: Borrows event and checkpoint and reports application or a recognized duplicate. An error does not specify whether partial updates occurred. This call does not automatically invoke a separate checkpoint store; checkpoint meaning and persistence belong to the implementation.

日本語: event と checkpoint を借用し、適用または認識済みの重複を報告します。 エラーだけでは部分更新の有無は決まりません。別のチェックポイントストアを自動では 呼び出さず、チェックポイントの意味と永続化は実装が定めます。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§