WIKI
Windmill
Windmill
코드 중심 워크플로·잡 실행 플랫폼은 어떻게 동작하는가.
Scope
핵심 질문
Windmill은 script를 기본 단위로 workflow, endpoint, UI를 구성하는 developer-oriented automation platform으로 어떻게 동작하는가?
Research
핵심 근거
- Windmill은 TypeScript, Python, Go, Bash, SQL 등 여러 언어의 script를 기본 실행단위로 지원한다.
- Flow는 script를 DAG/state machine 형태로 연결하고 loop, branch, approval, suspend를 지원한다.
- Script를 standalone endpoint나 schedule로 실행할 수 있고 self-host를 지원한다.
참고 자료
- Windmill scripts: https://www.windmill.dev/docs/getting_started/scripts_quickstart
- Windmill flows: https://www.windmill.dev/docs/getting_started/flows_quickstart
Draft
Windmill은 코드를 기본 단위로 사용하면서 script, workflow, endpoint와 내부 도구 UI를 한 플랫폼에서 운영하는 developer-oriented automation platform이다.
Script가 기본 단위다
Python, TypeScript, Go, Bash, SQL 등으로 작성한 함수를 script로 등록하면 입력 signature에서 parameter schema를 만들고 실행·스케줄·API 노출에 사용할 수 있다.
Flow
여러 script를 연결하면 Flow가 된다. Flow는 branch, loop, retry, approval, suspend 같은 제어흐름을 제공한다.
시각적 workflow를 사용할 수 있지만 각 step의 핵심 로직은 일반 코드로 유지할 수 있다는 점이 low-code 도구와 차별점이다.
Endpoint로 사용
Script나 Flow를 HTTP endpoint처럼 호출할 수 있기 때문에 작은 내부 API나 automation backend로 활용할 수 있다.
다만 high-throughput public API server와는 운영목표가 다르므로 latency와 scaling 요구를 따져야 한다.
Self-host
자체 서버에서 실행할 수 있어 내부 데이터와 credential을 통제하기 쉽다. 그 대신 worker, database, upgrade와 backup 운영은 사용자가 책임진다.
핵심
Windmill은 'workflow 안에서 코드를 조금 쓰는 도구'보다 '코드를 workflow와 운영 UI로 감싸는 플랫폼'에 가깝다. 코드 재사용성과 automation을 동시에 원하는 환경에 잘 맞는다.