Exactly-once в Kafka: транзакционный продюсер (отправка в транзакции), consumer с read_committed (читает только закоммиченные транзакции), идемпотентность на стороне приложения (дедупликация по ключу сообщения или по бизнес-ключу). В Go поддержка зависит от библиотеки; confluent-kafka и kafka-go поддерживают транзакции. Альтернатива - at-least-once + дедупликация в БД (уникальный ключ + INSERT ... ON CONFLICT).