Hash slotname, if it exceeds 63 characters in streams #2808
+30
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The replication slot in Postgres is of type name, which has a char limit of 63. At the moment the inputs of the stream section are used to generate the slot name, they are constructed by combining
fes_{dbname}_{app_id}
. This easily can exceed 63 characters, as application ids tend to be longer in a microservice environment, and also db names can contain things like team-name, environment, and the same long app-id. To address this when using streams in the Postgres manifest, I created a PR that checks if this is the case and then hashes the slot name to ensure its length is always shorter than 63. This should result in the configuration not failing when applied.I am also happy to discuss/implement other alternatives like: