수집과 전송을 분리한 폴링 구조

수집과 전송을 분리한 폴링 구조 A workflow diagram generated by Archify. 01 / 수집 (연결과 무관) 02 / 전송 03 / 성공 처리 EX / 막혔을 때 모아 둔다 보낸다 결과를 나눈다 여기까지는 연결이 없어도 돈다 복구 경로 신호 수집 · 즉시 기록 · 주기 수집 · 수집 (연결과 무관) › 여기까지는 연결이 없어도 돈다 › 모아 둔다 신호 수집 즉시 기록 · 주기 수집 영속 버퍼 · 기준이 되는 기록 · 수집 (연결과 무관) › 여기까지는 연결이 없어도 돈다 › 모아 둔다 · 15일 보존 영속 버퍼 기준이 되는 기록 15일 보존 전송 트리거 · 주기 · 이벤트 · 원격 깨움 · 전송 › 보낸다 전송 트리거 주기 · 이벤트 · 원격 깨움 연결 확인 · 끊겨 있으면 안 보냄 · 전송 › 보낸다 연결 확인 끊겨 있으면 안 보냄 일괄 전송 · 보낼 게 없어도 보냄 · 전송 › 결과를 나눈다 일괄 전송 보낼 게 없어도 보냄 성공 · 버퍼 비움 · 주기 재조정 · 성공 처리 › 결과를 나눈다 성공 버퍼 비움 · 주기 재조정 원격 깨움 · 오래 조용하면 서버가 부름 · 막혔을 때 › 복구 경로 › 보낸다 원격 깨움 오래 조용하면 서버가 부름 전송 보류 · 버퍼는 계속 쌓임 · 막혔을 때 › 복구 경로 › 보낸다 전송 보류 버퍼는 계속 쌓임 재시도 · 간격을 늘려가며 · 막혔을 때 › 결과를 나눈다 재시도 간격을 늘려가며 폐기 · 다시 보내지 않음 · 막혔을 때 › 결과를 나눈다 폐기 다시 보내지 않음 쌓인 만큼 잘못된 요청 연결됨 끊김 폴링이 멈췄을 때 복구되면 정상 응답 먼저 쌓는다 일시 오류 Legend User UI Agent logic Policy Tool action Context / trace Cloud service External system

수집과 전송은 다른 일이다

  • • 신호는 연결과 상관없이 버퍼에 먼저 쌓인다
  • • 전송만 연결을 조건으로 건다
  • • 연결이 끊겨도 잃는 것은 즉시성뿐이다

주기는 상수가 아니다

  • • 전송 주기는 서버가 응답마다 지시한다
  • • 수집 주기는 신호가 언제 사라지는지가 정한다
  • • 너무 느리면 데이터가 증발하고 너무 빠르면 한도에 걸린다

실패를 셋으로 나눈다

  • • 잘못된 요청은 버리고 끝낸다
  • • 일시 오류는 간격을 늘려가며 다시 보낸다
  • • 보낼 게 없어도 비어 있다는 사실을 보고한다