Pick field names once and use them everywhere
user_id, userId, uid and user.id across four services means no query works across them.
{ "level": "info", "msg": "order created", "request_id": "…", "user_id": 42, "order_id": "…", "duration_ms": 31 }A short document with the canonical names, and a logger wrapper that uses them. Durations end in _ms, ids end in _id, and the message is a fixed string with the variable parts in fields.
observability