Move the two effects of a finished game onto the event backbone.
Scope
- user-service: queue + DLQ consumer that validates the envelope and calls the existing
idempotent ELO path; once verified, remove the gRPC UpdateElo call from game-service and mark
the rpc deprecated = true in the proto (additive change only - never remove).
- game-service:
FinishedGameArchive becomes a consumer on its own queue (idempotent upsert by
game id), replacing the synchronous archive write.
- Integration tests: publish -> consume -> effect, redelivery without double effects, poison
messages land in the DLQ.
Move the two effects of a finished game onto the event backbone.
Scope
idempotent ELO path; once verified, remove the gRPC
UpdateElocall from game-service and markthe rpc
deprecated = truein the proto (additive change only - never remove).FinishedGameArchivebecomes a consumer on its own queue (idempotent upsert bygame id), replacing the synchronous archive write.
messages land in the DLQ.