brief.ing.gg

BRIEFING

워크플로 시스템에 Data Table이 필요한 이유

워크플로 시스템에 Data Table이 필요한 이유

Scope

핵심 질문

워크플로 엔진에서 실행이력과 별도로 작은 영속 테이블을 제공하면 어떤 문제를 해결할 수 있는가?

Research

핵심 근거

  • workflow execution history는 작업 추적용이고 application state 저장소와 목적이 다르다.
  • 중복제거 key, cursor, 마지막 처리시각, 작은 reference data는 table에 저장하면 편리하다.
  • 대규모 transactional DB를 대체하기보다 automation state의 낮은 진입장벽이 핵심이다.

참고 자료

  • Activepieces Tables overview: https://www.activepieces.com/docs/overview/welcome

Draft

워크플로는 외부 시스템을 연결하면서 작은 상태를 기억해야 하는 경우가 많다. 매번 별도 데이터베이스를 구축하면 단순 automation의 장점이 사라질 수 있다.

실행이력과 상태는 다르다

Execution history는 '어떤 workflow가 언제 성공했는가'를 기록한다. 하지만 '이 RSS item을 이미 처리했는가' 같은 application state로 사용하기에는 구조와 수명주기가 맞지 않는다.

Data Table의 용도

다음처럼 작은 상태를 저장하기 좋다.

  • 마지막 sync cursor
  • 처리한 message ID
  • URL 중복제거 key
  • 승인 대기 목록
  • 간단한 mapping table
  • 사용자별 automation 설정

언제 별도 DB가 필요한가

복잡한 transaction, 대규모 join, 수백만 건 고성능 query, 엄격한 schema migration이 필요하면 일반 DB가 맞다.

핵심

워크플로 내 Data Table의 목적은 데이터베이스를 대체하는 것이 아니라, 별도 인프라를 만들기에는 너무 작은 영속 상태를 workflow와 가까운 곳에서 관리하는 것이다.