I use ActiveSupport::CurrentAttributes any time I need request-scoped context without turning my app into a tangle of thread-local globals. In Current, I define the attributes I care about (member, request_id, remote_ip) and I use the resets hook to clear Time.zone so state never leaks between requests. I also override member= so assigning Current.member automatically sets Time.zone from the member’s preference. Then, in Set Current in controller, I populate Current at the edge of the request with a before_action, pulling values from current_member and request.request_id. After that, anything deeper in the stack can safely reference Current.request_id for logging and tracing without passing it through every method.