- 'Flawless'는 하드웨어 또는 소프트웨어 실패가 발생하더라도 코드를 완료할 때까지 실행하는 내구성 계산을 위한 실행 엔진입니다.
- 이 엔진은 복잡한 UI가 복잡한 상태를 유지하도록 하여, 데이터베이스 내의 모든 상태를 모델링하는 도전을 해결하고 사용자 경험을 향상시키는 것을 목표로 합니다.
- Flawless는 코드와 로컬 변수만으로 지속적인 상태를 모델링하게 해, 애플리케이션에서 복잡한 동작의 표현을 단순화합니다.
- Flawless의 워크플로우는 Rust로 작성되며, 완전히 결정론적인 환경에서 WebAssembly로 컴파일되어 실행됩니다.
- 유일한 비결정성은 HTTP 요청을 수행하거나 무작위 숫자를 생성하는 등 "실제 세계"와 상호작용할 때 도입됩니다.
- Flawless는 비결정적인 부작용의 로그를 사용하여 지속되게 하며, 중단된 워크플로우가 다시 실행되어 부작용을 다시 수행할 필요 없이 동일한 상태로 도달하도록 합니다.
- 이 접근법은 실패 시에 요구되는 데이터의 양을 최소화하며, 나머지는 필요에 따라 다시 계산됩니다.
- Flawless의 결정론적 실행 환경은 시스템을 관찰 가능하게 하며, 재현 불가능한 버그를 제거합니다.
- Flawless는 상태를 지속하는 부담을 덜어주어, 개발자들이 모든 행동이 완료될 때까지 실행될 것이라는 확신과 함께 비즈니스 로직을 작성하는데 집중할 수 있게 합니다.
- Flawless 엔진은 워크플로우의 실행을 방해하지 않고 유지보수를 위해 재시작될 수 있습니다.
- Flawless는 현재 사적 알파 상태에 있으며, 개발자들이 조기 접근을 위한 대기 목록에 참여하도록 초대하고 있습니다.