A discriminated union rather than ready + degraded booleans: those two
are different axes, so their combinations included an unreachable state
(degradation is only knowable once create() has resolved) while omitting
the states an async create() actually produces.
absent is distinct from creating on purpose. Looking up a poolId no
provider registered is a common misconfiguration that would otherwise be
indistinguishable from a slow create, forever.
Degrade reasons are not mirrored here: read pool.resolved.degradeReasons,
which is the single source of truth.
Pool lookup state.
A discriminated union rather than
ready+degradedbooleans: those two are different axes, so their combinations included an unreachable state (degradation is only knowable oncecreate()has resolved) while omitting the states an asynccreate()actually produces.absentis distinct fromcreatingon purpose. Looking up apoolIdno provider registered is a common misconfiguration that would otherwise be indistinguishable from a slow create, forever.Degrade reasons are not mirrored here: read
pool.resolved.degradeReasons, which is the single source of truth.