trpc-query-used-for-side-effects-breaks-idempotency-contract

Using a tRPC query procedure (GET semantic) to trigger writes — such as inserting notifications when checking due reminders — violates the idempotency contract of queries. Queries are cacheable and repeatable; placing write side-effects inside them means the effect fires unpredictably based on cache hits and client retry behavior. Side-effecting operations must always be mutation procedures.