Class: Stoplight::Wiring::Memory::Backend Private
- Inherits:
-
DataStoreBackend
- Object
- DataStoreBackend
- Stoplight::Wiring::Memory::Backend
- Defined in:
- lib/stoplight/wiring/memory/backend.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
In-memory storage backend for single-process deployments.
All storage components use thread-safe in-memory data structures. State is not shared across processes and is lost on restart.
Memory backend is also used as the fallback layer for Redis backend when Redis is unavailable.
Instance Method Summary collapse
-
#initialize(clock:, config:) ⇒ Backend
constructor
private
A new instance of Backend.
- #recovery_lock_store ⇒ Object private
- #recovery_metrics_store ⇒ Object private
- #state_store ⇒ Object private
- #unbounded_metrics_store ⇒ Object private
- #windowed_metrics_store ⇒ Object private
Constructor Details
#initialize(clock:, config:) ⇒ Backend
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Backend.
20 21 22 23 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 20 def initialize(clock:, config:) @clock = clock @config = config end |
Instance Method Details
#recovery_lock_store ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
32 33 34 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 32 def recovery_lock_store @recovery_lock_store ||= Infrastructure::Memory::Storage::RecoveryLock.new end |
#recovery_metrics_store ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
36 37 38 39 40 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 36 def recovery_metrics_store @recovery_metrics_store ||= Infrastructure::Memory::Storage::RecoveryMetrics.new( clock: @clock ) end |
#state_store ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
25 26 27 28 29 30 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 25 def state_store @state_store ||= Infrastructure::Memory::Storage::State.new( clock: @clock, cool_off_time: @config.cool_off_time ) end |
#unbounded_metrics_store ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
49 50 51 52 53 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 49 def unbounded_metrics_store @unbounded_metrics_store ||= Infrastructure::Memory::Storage::UnboundedMetrics.new( clock: @clock ) end |
#windowed_metrics_store ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
42 43 44 45 46 47 |
# File 'lib/stoplight/wiring/memory/backend.rb', line 42 def windowed_metrics_store @windowed_metrics_store ||= Infrastructure::Memory::Storage::WindowMetrics.new( window_size: T.must(@config.window_size), clock: @clock ) end |