issue: https://linear.app/comm/issue/ENG-4460/refactor-connection-field
The second step is to start using connection from keyserverStore.
Some explanations:
master-reducer: once actions have a defined way of extracting keyserver id from their arguments we will use the correct id instead of ashoatKeyserverID
about invariants:
- for files in lib/socket and web/socket and native/socket: every one of these components is a part of a socket. every socket will have to have a keyserver assigned, so its reassonable to expect those components to be calling on an existing keyserver
- disconnected bar: it will be reviewed during https://linear.app/comm/issue/ENG-4126/update-connection-status-bar-to-handle-multiple-keyservers, because the disconnected bar we have right now doesn't make much sense with multiple keyservers
- action-utils: useServerCall will be refactored in https://linear.app/comm/issue/ENG-4680/refactor-useservercall - we will be fetching the data differently, so this invariant will be removed
- calendar: this logic will have to be updated during https://linear.app/comm/issue/ENG-4125/update-socket-and-connection-logic-to-handle-multiple-keyservers
- native/calnedar/entry and web/calendar/entry: during selector refactor https://linear.app/comm/issue/ENG-4685/refactor-selectors we will extract the keyserver id from threadID and it's reasonable to assume that if we could pick a thread, we should have an entry for the corresponding keyserver in keyserverStore
- encrypted-image and remote-image: I talked to other teammates and they seem to agree that we will start using blob service before we can start using multiple keyservers
- push-handler: notifs will be sent through tunnelbroker https://linear.app/comm/issue/ENG-2104/send-encrypted-notifications-through-tunnelbroker. if we launch multiple keyservers before tunnelbroker the notifs will have to be rethought as a whole