module Network.Nakadi.Internal.Types.Worker where
import Network.Nakadi.Internal.Prelude
import UnliftIO.Async
import UnliftIO.STM
import Data.HashMap.Strict (HashMap)
import Data.List.NonEmpty (NonEmpty)
import Network.Nakadi.Internal.Types.Service
data Worker a = Worker { _queue :: TBQueue (SubscriptionEventStreamBatch a)
, _async :: Async ()
}
data WorkerRegistry a =
WorkerRegistry { _workers :: NonEmpty (Worker a)
, _partitionIndexMap :: PartitionIndexMap }
type PartitionIndexMap = HashMap (PartitionName, EventTypeName) Int