Class: CDC::SolidQueue::Checkpoint

Inherits:
Object
  • Object
show all
Defined in:
lib/cdc/solid_queue/checkpoint.rb

Overview

Minimal in-memory checkpoint store.

Applications that need durable replay safety should provide a persistent object that responds to #advance(event, result).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCheckpoint

Build an empty checkpoint.



14
15
16
# File 'lib/cdc/solid_queue/checkpoint.rb', line 14

def initialize
  @position = nil
end

Instance Attribute Details

#positionObject? (readonly)

Returns:

  • (Object, nil)


11
12
13
# File 'lib/cdc/solid_queue/checkpoint.rb', line 11

def position
  @position
end

Instance Method Details

#advance(event, result = nil) ⇒ Object?

Advance to the best known source position for an enqueued event.

Parameters:

  • event (Object)
  • result (Object) (defaults to: nil)

Returns:

  • (Object, nil)


23
24
25
# File 'lib/cdc/solid_queue/checkpoint.rb', line 23

def advance(event, result = nil)
  @position = position_for(event) || result_position(result) || @position
end