Description
CHAIN_UPDATE events emitted by the Safe Config Service only target one CGW pod. This causes the receiving pod to clear the shared state (Redis), but given we also store some data (Transaction API configuration) in memory, those changes cannot be propagated to the rest of the running pods.
Reproduction steps
- More than 1 CGW pod is running.
- Each pod holds
TransactionApiManager.transactionApiMap in memory, having a Record<string, TransactionApi> and each TransactionApi contains the Transaction Service URLs.
- The Transaction Service URL for a given chain in the Config Service is changed.
- A
CHAIN_UPDATE event is received by only one of the CGW pods.
- Only one of the CGW pods clears the in-memory data, so the URL is only updated for 1 pod.
Expected behavior
All the pods contain an accurate state reflecting the new configuration.
Additional information
No response