насчет этого -- можно вычислять более дешевый шлюз как раз-таки во время смены номера в рамках распределенной транзакции (или просто принятие ивента из очереди какой-то), и сохранять эту инфу в контексте сервиса нотификаций в настройках или ещё где-то
ну эти вещи решаются достаточно известными всем подходами: es, саги, распределенные транзакции, или если они не нужны -- просто подписка на ивент + для гарантии доставки на стороне продьюсера аутбоксы всякие и прочее
не понимаю вопроса. зачем его хранить ? У всякого брокера есть понятия акинга / накинга / реджекта (к-ые по амкп протоколу работают). и вот ты консьюмишь ивент, и акаешь его только в случае успеха