# roger v4.0.1 - Table of Contents

> RabbitMQ-backed background job processing system

## Pages

- [Overview](overview.md)
- [Configuration](configuration.md)

## Modules

- [Roger](Roger.md): The OTP partition's entrypoint and top-level supervisor

- [Roger.ApplySystem](Roger.ApplySystem.md): 
Listener for system-wide events.
- [Roger.Info](Roger.Info.md): Get information about the current partitions, queues and jobs of the entire cluster.
- [Roger.Job](Roger.Job.md): Base module for implementing Roger jobs.
- [Roger.KeySet](Roger.KeySet.md): 
An opaque interface to storing keys and testing set member ship of
keys. Like a bloom filter, but 100% probabilistic.
- [Roger.NodeInfo](Roger.NodeInfo.md): Get information about the current partitions, queues and jobs on this node.

- [Roger.Partition](Roger.Partition.md): Per-node partition registry
- [Roger.Partition.Consumer](Roger.Partition.Consumer.md): 
Job consumer process.
- [Roger.Partition.ContainingSupervisor](Roger.Partition.ContainingSupervisor.md): The supervisor hierarchy for a single partition

- [Roger.Partition.Global](Roger.Partition.Global.md): Coordinates the global Roger partition state
- [Roger.Partition.Global.StatePersister](Roger.Partition.Global.StatePersister.md): Behaviour for the persistence of the global partition state.
- [Roger.Partition.Global.StatePersister.Filesystem](Roger.Partition.Global.StatePersister.Filesystem.md): 
Module implementing filesystem storage for `Roger.Partition.Global` state persistence.
- [Roger.Partition.Global.StatePersister.Stub](Roger.Partition.Global.StatePersister.Stub.md): Stub module for `Roger.Partition.Global` state persistence.
- [Roger.Partition.Retry](Roger.Partition.Retry.md): Implements the retry logic for jobs.
- [Roger.Partition.Worker](Roger.Partition.Worker.md): 
Handles the decoding and execution of a single job.
- [Roger.Partition.Worker.Callback](Roger.Partition.Worker.Callback.md): 
Provides hooks into the job execution lifecycle.
- [Roger.Partition.WorkerSupervisor](Roger.Partition.WorkerSupervisor.md): The per-partition supervisor for job workers.
- [Roger.PartitionSupervisor](Roger.PartitionSupervisor.md): The supervisor for all partitions.

- [Roger.Queue](Roger.Queue.md): Functions related to queues.

- [Roger.ShutdownHandler](Roger.ShutdownHandler.md): This module handles correctly shutting down the workers.
By first stop consuming new jobs and then wait for certain time for workers to finish.

- [Roger.System](Roger.System.md): 
Listener for system-wide events.

