Usage of SnsIO.write is rather unintuitive at the moment.
topicArn is a required configuration and during expansion the existence of the topic is validated.
However, the user also has to provide a function to build an SNS publish request. The topicArn for that publish request has to be set as well, but can be different from the one configured and validated in the writer.
This is confusing and makes any validation pointless.
Also, when validating the SNS client instance is not closed.