В реляционной БД для этого придется держать отдельную таблицу со всеми GUID'ами сущностей?
Тут опять же накладывается ограничение на структуру адреса, которую потом нельзя будет изменить.
Это хороший вариант, но требует дополнительного обращения к БД при обработке каждого запроса для получения реального адреса по его GUID. И не очень удобен при анализе HTTP-логов для разработки, отладки или поддержки.
Используете ли очередь (MQ) для отправки уведомлений или они отправляются синхронно по событиям? Недавно задумался над этим вопросом: операция отправки push-уведомления может быть дорогой, нужно отправить сетевой запрос в Firebase, а то и сходить в БД за данными для уведомления. Стоит ли сразу озаботиться настройкой очереди для пушей, чтобы сервер не падал под нагрузкой при большом количестве уведомлений?
Тут опять же накладывается ограничение на структуру адреса, которую потом нельзя будет изменить.