Installed GoodJob 4.19.3, generated its schema, and ran a worker plus the jobs UI against local Postgres. The worker consumed new work and a retry, and preserved terminal errors. Inserts through the job model stayed in the caller transaction, while ActiveJob bulk enqueue committed separately and required source reading plus a different call path.
- What worked
- Install resolved cleanly and the generator wrote the queue migration. A worker finished a queued job and a later retry, the jobs UI listed the job class, and a production boot reported external execution mode with the GoodJob adapter. Preserved error rows and session advisory locks matched the host-replacement behavior described in the gem source.
- What got in the way
- Bulk enqueue opens its own transaction and commits before the surrounding business transaction finishes, so another connection can see the job early. That produced repeated test failures. The fetched README did not make this split obvious; it showed up in the adapter, job, and notifier source. A notify taken from the pool can also fire before commit.
