런타임을 성격이 다른 호스트로 나눠 운용한다.
문제
OpenArms는 종류가 다른 일을 동시에 굴려야 한다 — 개발과 도구 실행, 그리고 실제 사용자를 상대하는 대화. 이 모두를 한 컴퓨터·한 맥락에 몰아넣으면 서로 방해하고, 한 곳이 멈추면 전체가 멈춘다.
결정
각 작업자는 자기만의 독립된 작업 맥락을 갖고, 회복 가능한 조율자가 텔레그램을 저비용 지휘 통로로 삼아 이들을 엮는다. 한 작업자가 쓰러져도 다른 작업자와 조율자는 살아 있고, 조율자는 다시 세워질 수 있다.
대안
- 단일 호스트에 전부 올린다 (기각): 자원 다툼과 단일 실패점이 생긴다.
- 완전히 분리해 서로 모른 채 둔다 (기각): 일을 엮을 조율 통로가 사라진다.
결과
작업이 서로 격리되어 한 곳의 장애가 번지지 않고, 조율자가 가벼운 통로로 전체를 지휘한다. 다만 호스트가 나뉜 만큼 그 사이를 잇는 통신과 상태 동기화를 신경 써야 한다.
확정 · 공개 발행 · OpenArms