Important to be able to give good documentation on some of the grittier details of how the backplane functions in Postgres, for implementors to be aware. This issue will be updated as more particularities are thought of (or found) which should be docuented.
- Npgsql requires long-running connection for
LISTEN on separate thread
- Postgres limits channel names to 63 characters; channel names in excess of this are hashed to get in under 63.
- As a side note: it might be good to expose an option to be able to control how this hashing is done; hashes can potentially clash or have implications in high-performance scenarios
- The backplane does not initialize until it receives a client connection
- There is an
OnInitialized callback in the options (Side note: Should that be an event? Probably?)
- The backplane can be forced to initialize during startup by resolving the
PostgresHubLifetimeManager<> (with the hub type the user wants to initialize for) and calling EnsureInitialized on it
- Various scenarios in which Postgres can fail and Npgsql can throw; these are logged
Important to be able to give good documentation on some of the grittier details of how the backplane functions in Postgres, for implementors to be aware. This issue will be updated as more particularities are thought of (or found) which should be docuented.
LISTENon separate threadOnInitializedcallback in the options (Side note: Should that be an event? Probably?)PostgresHubLifetimeManager<>(with the hub type the user wants to initialize for) and callingEnsureInitializedon it