The idea is to resolve relays just in time as the requests from the library user comes in. This has the benefit, that only the currently needed relays are connected and requests get automatically split. This means that a request is sent only to the relay where its most likely to receive an answer. This is useful to avoid duplicate data and battery concerns on mobile devices.
This graphic shows how a request is handled step by step. The low level nostr request starts at the top left.
This graphic shows what happens if a relay connection is lost or connection fails.
Shows the concept of a relay garbage collector for rarely used relays.