Для одного сервиса — транзакции БД. Для нескольких — сложнее. Варианты: distributed transactions (2PC — медленно), saga pattern (компенсирующие транзакции), outbox pattern. В Go используй database/sql транзакции для локальной консистентности и saga для распределённой.