packages feed

shibuya-core-0.8.0.0: src/Shibuya.hs

-- | The Shibuya framework: supervised queue processing with explicit acks.
-- This is the single import an application author needs.
module Shibuya
  ( -- * Running an application
    runApp,
    AppConfig (..),
    defaultAppConfig,
    AppError (..),
    QueueProcessor (..),
    mkProcessor,
    mkBatchProcessor,
    AppHandle,
    getAppMetrics,
    getAppMaster,
    waitApp,
    stopApp,
    stopAppGracefully,
    ShutdownConfig (..),
    defaultShutdownConfig,
    SupervisionStrategy (..),

    -- * Messages and envelopes
    MessageId (..),
    Cursor (..),
    Attempt (..),
    Envelope (..),
    mkEnvelope,
    Headers,
    TraceHeaders,
    Message (..),

    -- * Handlers and acks
    Handler,
    AckDecision (..),
    RetryDelay (..),
    DeadLetterReason (..),
    HaltReason (..),
    ProcessorHalt (..),

    -- * Batch processing
    BatchHandler,
    BatchConfig (..),
    defaultBatchConfig,
    BatchKey (..),
    defaultBatchKey,
    BatchInfo (..),
    BatchTrigger (..),
    BatchAck (..),
    ackAllOk,
    ackAll,
    ackExcept,
    withFallback,
    failMessages,
    BatchConfigError (..),
    validateBatchConfig,

    -- * Retry helpers
    module Shibuya.Core.Retry,

    -- * Policies
    OrderingPolicy (..),
    Concurrency (..),
    validatePolicy,

    -- * Adapter authoring
    Adapter (..),
    AckHandle (..),
    Lease (..),
    Ingested (..),
    mkIngested,
    toMessage,

    -- * Errors
    PolicyError (..),
    HandlerError (..),
    RuntimeError (..),
    ConfigError (..),

    -- * Metrics and introspection
    Master,
    ProcessorId (..),
    ProcessorState (..),
    ProcessorMetrics (..),
    StreamStats (..),
    BatchStats (..),
    InFlightInfo (..),
    MetricsMap,

    -- * Tracing
    Tracing,
    runTracing,
    runTracingNoop,
  )
where

import Shibuya.Adapter (Adapter (..))
import Shibuya.App
  ( AppConfig (..),
    AppError (..),
    AppHandle,
    Master,
    QueueProcessor (..),
    ShutdownConfig (..),
    SupervisionStrategy (..),
    defaultAppConfig,
    defaultShutdownConfig,
    getAppMaster,
    getAppMetrics,
    mkBatchProcessor,
    mkProcessor,
    runApp,
    stopApp,
    stopAppGracefully,
    waitApp,
  )
import Shibuya.Batch
import Shibuya.Core.Ack (AckDecision (..), DeadLetterReason (..), HaltReason (..), RetryDelay (..))
import Shibuya.Core.AckHandle (AckHandle (..))
import Shibuya.Core.Error (ConfigError (..), HandlerError (..), PolicyError (..), RuntimeError (..))
import Shibuya.Core.Ingested (Ingested (..), Message (..), mkIngested, toMessage)
import Shibuya.Core.Lease (Lease (..))
import Shibuya.Core.Metrics
  ( BatchStats (..),
    InFlightInfo (..),
    MetricsMap,
    ProcessorId (..),
    ProcessorMetrics (..),
    ProcessorState (..),
    StreamStats (..),
  )
import Shibuya.Core.Retry
import Shibuya.Core.Types (Attempt (..), Cursor (..), Envelope (..), Headers, MessageId (..), TraceHeaders, mkEnvelope)
import Shibuya.Handler (Handler)
import Shibuya.Internal.Runner.Halt (ProcessorHalt (..))
import Shibuya.Policy (Concurrency (..), OrderingPolicy (..), validatePolicy)
import Shibuya.Telemetry.Effect (Tracing, runTracing, runTracingNoop)