Но опять же "почти" - означает, что надо сделать вид, что обновление этого списка "friends" пришло из резолвера, а не из пула данных. Т.к. резолвер ещё и сериализует, и валидирует и прочее, а мне этого пока не удалось добаиться.
Ну вот тут два подхода:
— либо ты отсылаешь ивент с __typename + id того что изменилось, а в резолвере делаешь запрос в БД:
в таком случае в БД на один ивент обновления чего-то может отослаться 10000 запросов, если будет 10000 подписок.
В твоем случае из всех резолверов придет 10000 запросов в пул (redis или что у тебя там)
— либо во время ивента вычислять и отправлять полный набор необходимых данных для всех резолверов (тупо ссумируешь все поля и данные, в которых нуждаются ВСЕ подписчики) и уже в резолверах graphql отфильтрует то что нужно отправить