True cross-store ACID is rare and expensive. Most teams use local transactions plus reliable messaging—complete the SQL commit, then publish an event; consumers update the document store and handle retries safely.
- Pass idempotency keys from API gateways through workers to both stores.
- Model compensating actions: void invoice, mark order failed, alert finance.
- Test partition behavior: what if Mongo is up but Postgres read replica lags?
Redis locks can help short critical sections but are not a distributed transaction engine—keep scope tiny.
