When updating the same resource multiple times during one request (f.e. by having the same resource added to multiple domain model objects and updating all of those), it can lead to a rate limit error thrown by GCS:
The object xyz exceeded the rate limit for object mutation operations (create, update, and delete). Please reduce your request rate. See https://cloud.google.com/storage/docs/gcs429.
This is happening because the publishResource method of the GcsTarget class is called for every resource, even if they are the same. It would suffice to publish it only one time.