Simple parameters are easier to enqueue (manually or automatically), easier to spot in the dashboard and logs, enable better test isolation, and save Redis memory. They also guard against stale data: if you pass values that change between enqueue and execution (e.g. an email address) you may act on outdated information. Passing a reference (like an ID) lets the job pull the current data. With Sidekiq 7 complex arguments become hard errors rather than warnings, and the job is sent to the dead queue without retries.