At Facebook, so far we have only used the Relay integration with Suspense in production
Мне это запомнилось так шо не кричите
Там ссылка была на демо https://codesandbox.io/s/frosty-hermann-bztrp глянь, там суть довольно проста, вызов .read() смотрит загруженны ли данные, если не загружены то throw промис, Suspense выступает как Error boundary и ловит ошибки, смотрит если это Promise то ждет резолва и показывает fallback-компонет (типа спиннера например), а основной комопент скрывает (при помощи display: none, а не удаляет из ДОМ), как только промис зарезолвился и данные пришли, то Suspense перерендеривет основной компонент, вызов .read() увидит что данные есть и вернет их. Ну это в общих чертах.