Skip to main content

Concepts

Integration Hub란?

Integration Hub는 Node로 구성된 Flow를 만들고, Flow와 매핑된 Endpoint를 통해 RestAPI 형태로 내부 혹은 외부 시스템에 제공하는 플랫폼입니다.

요청 처리 흐름

내부 혹은 외부 시스템이 Hub 플랫폼에서 배포한 Endpoint를 호출할 때마다 Hub 엔진이 해당 요청을 받아 Flow를 조회하고 Node들을 순차 실행한 뒤 결과를 반환합니다.

  1. 접수: Endpoint(도메인 api.bsg.support)를 호출하면 Hub 런타임에서 시작합니다.
  2. 요청 파싱: API Key, 인터페이스 정보 등을 추출합니다.
  3. 인증: API Key 정보를 검증합니다.
  4. Flow 조회: Endpoint Path + Method 조합으로 매핑된 Flow를 조회합니다.
  5. Node 실행: Flow에 정의된 Node들을 순서대로 실행합니다. Node 간 데이터는 Immer 기반의 불변(payload) 객체로 전달되며, 각 Node는 이전 Node의 결과를 draft로 받아 다음 결과를 만들어 냅니다.
  6. 로깅 및 상태 갱신: 실행 로그는 CloudWatch와 로그 DB에 저장되고, Scheduler/배치 실행을 위한 Task, TaskGroup, Batch 상태가 함께 갱신됩니다.
  7. 응답: 처리 결과는 CORS 헤더와 함께 JSON으로 압축되어(zip) 리턴 됩니다.

Node 유형과 실행 방식

Flow의 각 Node는 유형에 따라 다르게 실행됩니다.

  • Function(JS) Node: 사용자가 작성한 JavaScript 코드를 동적으로 로드하여 실행합니다. 실행 시마다 Node에 대응하는 소스 코드를 조회한 뒤 Node.js 런타임에서 실행합니다.
  • RFC Node: SAP RFC 연결 정보와 파라미터를 이용해 RFC 함수를 호출합니다.
  • Flow Node: 다른 Flow를 재사용 할 수 있습니다.

공통 함수(Function 공유 코드)

하나의 Flow 안에 여러 Function Node가 있는 경우, 반복되는 로직은 Flow 단위로 공유되는 공통 함수 파일(Functions)에 모아두고 각 Function Node 코드에서 context.fn으로 호출해 재사용할 수 있습니다. 자세한 내용은 공통 함수 문서를 참고하세요.

Function 코드의 버전 관리

Function Node의 소스 코드는 변경 이력 추적을 위해 GitHub 저장소로 동기화됩니다. 자세한 내용은 Function 코드 버전 관리 문서를 참고하세요.

배포 구조

  • Integration Hub 엔진은 Alias/Version을 이용해 무중단으로 신규 버전을 배포 및 적용 하는것을 지원합니다.