Doors is basically a mix between a promise (one state) and a state machine (multiple transition) without being immutable.
A door has multiple locks and can't be openned until all locks are unlocked.
Don't hesitate to star the project on github if you like it :)