Schema Merge vs Federation(=join)

DDANDARA ㅣ 2023. 1. 19. 16:02

어느 요청이든 같은 api gateway를 바라본다. 이를 위해서는 gateway에서 여러 graphql 스키마를 합쳐야 한다. 결국 모든 스키마가 gateway에 합쳐진다. 이 과정이 바로 schema merge.

모든 스키마가 합쳐지기 때문에 네이밍이 중요하다. A라는 api서버에서 설계한 스키마에 `Slot`이라는 타입이 존재하고 B라는 api서버에서 설계한 스키마에도 `Slot` 이라는 타입이 존재한다면 어떻게 될까

충돌로 판단

  • gateway에서 두 타입이 충돌이라고 판단했다면 이는 결국 빌드가 되지 않고 에러를 리턴한다

충돌로 판단하지 않는 경우

  • 이 경우가 더 심각한 경우인데 두 타입이 충돌되지 않고 합쳐진 것 자체가 설계가 잘못된건데 우연하게도 아무 문제없이 합쳐졌다고 생각하더라도 그 후에 request 에 대한 라우트가 불가능해진다. 이 Slot 이라는 요청이 어느 api의 Slot을 바라보고 요청한건지 모르기에 엉뚱한 response를 보낼 가능성이 크다.

'GraphQL' 카테고리의 다른 글

GraphQL 페이지네이션  (0) 2023.03.16
GraphQL 기본 문법 - 서버  (0) 2021.04.18
GraphQL 기본 문법 - 클라이언트  (0) 2020.12.11