Module: Engram::Ports::ProcessedTurns

Included in:
Adapters::InMemoryProcessedTurns, Rails::CacheProcessedTurns
Defined in:
lib/engram/ports/processed_turns.rb

Overview

Contract for remembering which turns have already been observed, so observation is idempotent across retries and accidental double-calls. Implementations: Adapters::InMemoryProcessedTurns, Rails::CacheProcessedTurns.

Instance Method Summary collapse

Instance Method Details

#record(key) ⇒ Object

Mark this idempotency key as processed.

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/engram/ports/processed_turns.rb', line 15

def record(key)
  raise NotImplementedError, "#{self.class} must implement #record"
end

#seen?(key) ⇒ Boolean

Has this idempotency key already been processed?

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


10
11
12
# File 'lib/engram/ports/processed_turns.rb', line 10

def seen?(key)
  raise NotImplementedError, "#{self.class} must implement #seen?"
end