Those should already go across their internal networking/be as quick as possible https://discord.com
Those should already go across their internal networking/be as quick as possible durable-objects (D1, R2, use Durable Objects)
Fetching content is one of the most common Worker tasks. fetch() has always leveraged powerful Cloudflare features like Argo and Load Balancing.https://blog.cloudflare.com/introducing-the-workers-cache-api-giving-you-control-over-how-your-content-is-cached/
d1, r2 are durable objects
use not are, the metadata is on there but not the objectss3_bucket_name/customer_id_here/2025/10/31/23/epoch_time_here_uuid-of-event-here.json. Then, when a customer wants say, the last two days of logs, you can do a ListObjectsV2 request to s3_bucket_name/customer_id_here/2025/10/30/ and s3_bucket_name/customer_id_here/2025/10/31/ to get all the JSON files of their events, which you can then use aws4fetch again to give the user presigned S3 URLs to download their events. content-encoding: gzip when uploading. 

ares3_bucket_name/customer_id_here/2025/10/31/23/epoch_time_here_uuid-of-event-here.jsons3_bucket_name/customer_id_here/2025/10/30/s3_bucket_name/customer_id_here/2025/10/31/content-encoding: gzip