trpc-query-writing-data-violates-idempotency-contract

A tRPC query procedure (GET-equivalent) that writes side effects (e.g., creating notification records) violates the query/mutation contract: queries must be idempotent reads. Beyond correctness, the practical failure is that cron-less reminder systems only fire when a user manually triggers the endpoint — silent delivery failure. Reminder delivery requires a scheduled job (cron or queue), not a lazily-invoked query endpoint.