가격 서비스
디앱의 유일한 외부 의존성을 격리하는 작은 별도 HTTP 서비스입니다.
분리한 이유
토큰화 주식의 달러 가격은 체인에서 얻을 수 없습니다 — API에서 옵니다. 이를 애플리케이션 라우트에 넣으면 그 의존성이 제품에 꿰매어 들어가게 됩니다.
이를 분리해 둔 덕분에 디앱은 모든 프로토콜 상태를 체인에서 직접 계속 읽으며, 가격 서비스가 다운되어도 쓸모를 유지합니다. 그럴 때는 "price unavailable"을 표시하며, 절대 0을 표시하지 않습니다.
신선도 규칙
이는 구현 세부 사항이 아니라 프로젝트의 설계 규칙입니다:
금융 수치는 최신인지 여부를 모르는 상태로는 결코 표시되지 않으며, 이용할 수 없는 가격은 이용할 수 없음으로 표시되고, 결코 0으로도, 알림 없는 추정치로도 표시되지 않습니다.
따라서 반환되는 모든 가격에는 출처, 업스트림에서 관측된 타임스탬프, 그리고 오래된 값인지를 나타내는 플래그가 붙습니다. 전체 페이로드에는 하나 이상의 심볼에 가격을 매기지 못한 경우 "degraded" 플래그도 붙습니다.
로컬 환경
서비스는 픽스처 모드로 실행됩니다: 가격은 고정되어 있고 네트워크 호출이 없어, 로컬 시나리오를 재현할 수 있습니다.