Lock types
Different VDEs can be locked concurrently. Two builds targeting different VDEs do not block each other.
Lock behavior
- Locks have an expiry time (
expires_at). Active locks are those whereexpires_at > now. - When a lock is successfully released, the lock row is deleted.
- Acquiring a lock over an expired lock replaces it.
- Owner identity is checked on release - only the owner that acquired the lock can release it.

