# Oban v2.24.2 - Table of Contents > Robust job processing, backed by modern PostgreSQL, SQLite3, and MySQL. ## GUIDES - [Changelog](changelog.md) - Introduction - [Installation](installation.md) - [Ready for Production](ready_for_production.md) - Learning - [Defining Queues](defining_queues.md) - [Job Lifecycle](job_lifecycle.md) - [Scheduling Jobs](scheduling_jobs.md) - [Periodic Jobs](periodic_jobs.md) - [Unique Jobs](unique_jobs.md) - [Operational Maintenance](operational_maintenance.md) - [Instrumentation and Logging](instrumentation.md) - [Error Handling](error_handling.md) - [Clustering](clustering.md) - [Instance and Database Isolation](isolation.md) - Advanced - [Writing Plugins](writing_plugins.md) - [Release Configuration](release_configuration.md) - [Scaling Applications](scaling.md) - [Troubleshooting](troubleshooting.md) - Recipes - [Recursive Jobs](recursive-jobs.md) - [Reliable Scheduled Jobs](reliable-scheduling.md) - [Reporting Job Progress](reporting-progress.md) - [Handling Expected Failures](expected-failures.md) - [Splitting Queues Between Nodes](splitting-queues.md) - [Migrating from Other Languages](migrating-from-other-languages.md) - Testing - [Introduction to Testing](testing.md) - [Testing Workers](testing_workers.md) - [Testing Queues](testing_queues.md) - [Testing Config](testing_config.md) - Upgrading - [Upgrading to v2.0](v2-0.md) - [Upgrading to v2.6](v2-6.md) - [Upgrading to v2.11](v2-11.md) - [Upgrading to v2.12](v2-12.md) - [Upgrading to v2.14](v2-14.md) - [Upgrading to v2.17](v2-17.md) - [Upgrading to v2.20](v2-20.md) - [Upgrading to v2.21](v2-21.md) - [Upgrading to v2.24](v2-24.md) ## Modules - [Oban](Oban.md): Oban is a robust background job framework which uses PostgreSQL, MySQL, or SQLite3 for persistence. - [Oban.Job](Oban.Job.md): A Job is an Ecto schema used for asynchronous execution. - [Oban.Migration](Oban.Migration.md): Migrations create and modify the database tables Oban needs to function. - [Oban.Notifier](Oban.Notifier.md): The `Notifier` coordinates listening for and publishing notifications for events in predefined channels. - [Oban.Peer](Oban.Peer.md): The `Peer` module maintains leadership for a particular Oban instance within a cluster. - [Oban.Period](Oban.Period.md): Periods represent durations of time as either raw seconds or a unit tuple. - [Oban.Testing](Oban.Testing.md): This module simplifies testing workers and making assertions about enqueued jobs when testing in `:manual` mode. - [Oban.Worker](Oban.Worker.md): Defines a behavior and macro to guide the creation of worker modules. - Services - [Oban.Cron](Oban.Cron.md): Periodically enqueue jobs through [cron](https://en.wikipedia.org/wiki/Cron)-based scheduling. - [Oban.Lifeline](Oban.Lifeline.md): Naively transition jobs stuck `executing` back to `available`. - [Oban.Pruner](Oban.Pruner.md): Periodically delete `completed`, `cancelled`, and `discarded` jobs based on their age. - [Oban.Queues](Oban.Queues.md): Starts and stops the queues listed in the `:queues` option. - [Oban.Reindexer](Oban.Reindexer.md): Periodically rebuild indexes to minimize database bloat. - Engines - [Oban.Engines.Basic](Oban.Engines.Basic.md): The default engine for use with Postgres databases. - [Oban.Engines.Dolphin](Oban.Engines.Dolphin.md): An engine for running Oban with MySQL (via the MyXQL adapter). - [Oban.Engines.Inline](Oban.Engines.Inline.md): A testing-specific engine that's used when Oban is started with `testing: :inline`. - [Oban.Engines.Lite](Oban.Engines.Lite.md): An engine for running Oban with SQLite3. - Notifiers - [Oban.Notifiers.PG](Oban.Notifiers.PG.md): A [PG (Process Groups)][pg] based notifier implementation that runs with Distributed Erlang. This notifier scales much better than `Oban.Notifiers.Postgres` but lacks its transactional guarantees. - [Oban.Notifiers.Postgres](Oban.Notifiers.Postgres.md): A Postgres LISTEN/NOTIFY based Notifier. - Peers - [Oban.Peers.Database](Oban.Peers.Database.md): A peer that coordinates centrally through a database table. - [Oban.Peers.Global](Oban.Peers.Global.md): A cluster based peer that coordinates through a distributed registry. - Extending - [Oban.Config](Oban.Config.md): The Config struct validates and encapsulates Oban instance state. - [Oban.Engine](Oban.Engine.md): Defines an Engine for job orchestration. - [Oban.Plugin](Oban.Plugin.md): Defines a shared behaviour for Oban plugins. - [Oban.Registry](Oban.Registry.md): Local process storage for Oban instances. - [Oban.Repo](Oban.Repo.md): Wrappers around `Ecto.Repo` and `Ecto.Adapters.SQL` callbacks. - [Oban.Telemetry](Oban.Telemetry.md): Telemetry integration for event metrics, logging and error reporting. - Exceptions - [Oban.CrashError](Oban.CrashError.md): Wraps unhandled exits and throws that occur during job execution. - [Oban.PerformError](Oban.PerformError.md): Wraps the reason returned by `{:error, reason}`, `{:cancel, reason}`, or `{:discard, reason}` in a proper exception. - [Oban.TimeoutError](Oban.TimeoutError.md): Returned when a job is terminated early due to a custom timeout. - Deprecated - [Oban.Plugins.Cron](Oban.Plugins.Cron.md): Deprecated, use `Oban.Cron` instead. - [Oban.Plugins.Lifeline](Oban.Plugins.Lifeline.md): Deprecated, use `Oban.Lifeline` instead. - [Oban.Plugins.Pruner](Oban.Plugins.Pruner.md): Deprecated, use `Oban.Pruner` instead. - [Oban.Plugins.Reindexer](Oban.Plugins.Reindexer.md): Deprecated, use `Oban.Reindexer` instead. ## Mix Tasks - [mix oban.install](Mix.Tasks.Oban.Install.md): Install and configure Oban for use in an application.