Oban Training 101 (self-published) (interactive tutorial) (free)

The Oban Training 101 curriculum is extracted from our in-person training from ElixirConf 2023. It’s designed to teach everything you need to know from getting started with Oban through deploying to production.

The course is open source and entirely built with LiveBook.

Course Outline

Section 0

  • Why use Oban?
  • A high level overview of the architecture

Section 1

  • Installing Oban into an application
  • Running migrations
  • Configuring for tests
  • Verifying Oban is running and configured properly

Section 2

  • Creating worker modules
  • Enqueueing jobs
  • Scheduling jobs to run in the future
  • Asserting jobs are enqueued in tests

Section 3

  • Controlling worker behaviour with return values
  • Testing worker functionality
  • Managing retry backoff
  • Providing execution timeouts

Section 4

  • Ensuring uniqueness
  • Cancelling and retrying jobs
  • Replacing fields on unique conflicts
  • Draining queues for integration testing

Section 5

  • Running jobs on a schedule
  • Managing multiple queues and concurrency
  • Pausing and resuming queues
  • Validating configuration changes

Section 6

  • Deprioritizing jobs
  • Inserting multiple jobs at once
  • Recursively enqueuing jobs
  • Asserting the content of all enqueued jobs

Section 7

  • Pruning older jobs
  • Rescuing unexpectedly stopped jobs
  • Logging and instrumenting with Telemetry
  • Reporting errors
19 Likes

Wow, this is great!

Is this training oriented around the free version or it focuses more on pro version?

Seems to be all free version:

https://github.com/search?q=repo%3Asorentwo%2Foban_training%20Mix.install&type=code

2 Likes

This is entirely oriented to the free version. The only mentions of Pro are in the various animal images (they are from stickers we gave away at the conference).

4 Likes

This is amazing. Thanks!

2 Likes

This is exactly the sort of learning resource that I find most personally effective—no videos, docs linked, running code built-in and required. Fabulous work, thank you!

3 Likes