marconi-core-1.2.0.0: Modular indexing for rewindable ledger
Safe HaskellSafe-Inferred
LanguageHaskell2010

Marconi.Core.Transformer.WithDelay

Description

A transformer that delay insertion of events into an indexer.

See Marconi.Core for documentation.

Synopsis

Documentation

data WithDelay indexer event #

When indexing computation is expensive, you may want to delay it to avoid expensive rollback WithDelay buffers events before sending them to the underlying indexer. Buffered events are sent when the buffers overflows.

An indexer wrapped in WithDelay won't interact nicely with a coordinator at the moment, as WithDelay acts as it's processing an event while it only postpones the processing.

As a consequence, WithDelay is preferably used at the top of the hierarchy.

Instances

Instances details
IndexerTrans WithDelay # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

unwrap :: forall (indexer :: Type -> Type) event. Lens' (WithDelay indexer event) (indexer event) #

Queryable m event query indexer => Queryable m event query (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

query :: Point event -> query -> WithDelay indexer event -> m (Result query) #

queryLatest :: query -> WithDelay indexer event -> m (Result query) #

(Monad m, IsIndex m event indexer, Ord (Point event)) => IsIndex m event (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

index :: Timed (Point event) (Maybe event) -> WithDelay indexer event -> m (WithDelay indexer event) #

indexAll :: (Eq (Point event), Traversable f) => f (Timed (Point event) (Maybe event)) -> WithDelay indexer event -> m (WithDelay indexer event) #

indexAllDescending :: (Eq (Point event), Traversable f) => f (Timed (Point event) (Maybe event)) -> WithDelay indexer event -> m (WithDelay indexer event) #

rollback :: Point event -> WithDelay indexer event -> m (WithDelay indexer event) #

setLastStablePoint :: Point event -> WithDelay indexer event -> m (WithDelay indexer event) #

IsSync m event indexer => IsSync m event (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

lastStablePoint :: WithDelay indexer event -> m (Point event) #

lastSyncPoint :: WithDelay indexer event -> m (Point event) #

(Applicative m, Resetable m event indexer) => Resetable m event (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

reset :: WithDelay indexer event -> m (WithDelay indexer event) #

Closeable m indexer => Closeable m (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

close :: WithDelay indexer event -> m () #

HasDatabasePath indexer => HasDatabasePath (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

getDatabasePath :: WithDelay indexer event -> SQLiteDBLocation #

HasDelayConfig (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

delayCapacity :: Lens' (WithDelay indexer event) Word #

withDelay #

Arguments

:: Word

capacity

-> indexer event 
-> WithDelay indexer event 

A smart constructor for WithDelay

class HasDelayConfig indexer where #

Provide accces to the delay size of a WithDelay transformer. The provided instance ensure that access is granted even if other indexer transformers are used on top of this one

Methods

delayCapacity :: Lens' (indexer event) Word #

Instances

Instances details
HasDelayConfig (WithDelay indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

delayCapacity :: Lens' (WithDelay indexer event) Word #

(IndexerTrans t, HasDelayConfig indexer) => HasDelayConfig (t indexer) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

delayCapacity :: Lens' (t indexer event) Word #

(IndexerMapTrans t, HasDelayConfig indexer) => HasDelayConfig (t indexer output) # 
Instance details

Defined in Marconi.Core.Transformer.WithDelay

Methods

delayCapacity :: Lens' (t indexer output event) Word #