# Adoption Oban Pro is designed as a drop-in enhancement to Oban. Once you've [installed](installation.md) the package and schema, your application automatically benefits from Pro's optimizations without any code changes. ## Automatic Improvements Pro replaces several internal operations with optimized implementations that are enabled when you install the package: - **Bulk Inserts** — Enqueueing multiple jobs with `enqueue_many` uses a single optimized database operation rather than inserting jobs one at a time. - **Bulk Acking** — Completing, cancelling, snoozing, etc. uses batched updates instead of individual queries per job. - **Accurate Rescue** — Orphaned jobs from node restarts or crashed queues are rescued immediately (~60 seconds) rather than waiting for a fixed timeout (5+ minutes). Long-running jobs won't be rescued prematurely. These optimizations reduce database round-trips and improve throughput, especially under high load or when processing large batches of jobs. ## Multi-Process Execution For CPU-intensive workloads, switch from `oban start` to `obanpro start` to run jobs across multiple Python processes. This bypasses the GIL and enables true parallelism utilizing multiple cores, while respecting your queue's concurrency limits: ```diff - oban start + obanpro start ``` See [Multi-Process](multi_process.md) for configuration options and performance details. ## Next Steps With Pro installed, you can start using its advanced features: - [Smart Concurrency](smart_concurrency.md) — Global limits, rate limiting, and partitioned queues - [Unique Jobs](unique_jobs.md) — Prevent duplicate jobs based on configurable constraints - [Workflows](workflow.md) — Compose jobs with dependencies for complex pipelines