From 78cf14f63b92086d06b92afd23c0ce6f6ad48496 Mon Sep 17 00:00:00 2001 From: Todd Baert Date: Mon, 28 Oct 2024 14:43:33 -0400 Subject: [PATCH] fixup: lifecycle summary Signed-off-by: Todd Baert --- docs/reference/specifications/providers.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/reference/specifications/providers.md b/docs/reference/specifications/providers.md index e17f9b51a..08d432367 100644 --- a/docs/reference/specifications/providers.md +++ b/docs/reference/specifications/providers.md @@ -76,12 +76,13 @@ The lifecycle is summarized below: - for RPC providers, flags resolved with `reason=STATIC` are [cached](#caching) - if flags change the associated stream (event or sync) indicates flags have changed, flush cache, or update `flag set` rules respectively and emit `PROVIDER_CONFIGURATION_CHANGED` - if stream disconnects: - - attempt to [reconnect](#stream-reconnection) silently immediately - - if initial reconnect succeeds, do nothing - - if initial reconnect fails: + - [reconnect](#stream-reconnection) with backoff + - if reconnect attempt > `retryGraceAttempts` - emit `PROVIDER_ERROR` - - RPC providers invalidate cache - - reconnect with backoff + - if reconnect attempt <= `retryGraceAttempts` + - emit `PROVIDER_STALE` + - RPC mode resolves `STALE` from cache where possible + - in-process mode resolves `STALE` from stored `flag set` rules - on stream reconnection: - emit `PROVIDER_READY` and `PROVIDER_CONFIGURATION_CHANGED` - in-process providers store the latest `flag set` rules