Tigris Data's company blog, covering its globally distributed S3-compatible object storage, benchmarks, pricing, and related infrastructure for AI workloads.
HN commenters mention Tigris as a new object storage service with S3 replication and Fly.io integration; the CEO also comments on the company's own posts.
I'm the developer of Protomaps, to summarize:
The latency you see on https://pmtiles.io/?url=https%3A%2F%2Fdata.source.coop%2Fprotomaps%2Fopenstreetmap%2Ftiles%2Fv3.pmtiles#map=4.18/47.77/13.67 is representative of how PMTiles works on AWS S3, coming from the us-west-2 region. It will be reasonable to load for those in the western US and likely quite slow from Europe or Oceania.
If you want to make a direct comparison of Protomaps to OpenFreeMap, you need to compare serving OpenFreemap with NGINX from btrfs on disk, to running `pmtiles serve` on a `.pmtiles` file on disk, as described here: https://docs.protomaps.com/deploy/server
The OpenFreeMap page for me (in Taiwan) takes 1-2 seconds per tile, which is more than double the load tile for the PMTiles in us-west-2 example linked above.
The best solution to get latency competitive with commercial providers, for a global audience, is to cache tiles at CDN edge locations. I describe automated ways to do that with Cloudflare Workers and AWS Lambda + Cloudfront here:
https://docs.protomaps.com/deploy/cloudflare https://docs.protomaps.com/deploy/aws
I'm also experimenting with http://tigrisdata.com which lets you geo-distribute a static storage bucket like in this example: https://pmtiles.io/?url=https%3A%2F%2Fdemo-bucket.protomaps.com%2Flatest.pmtiles#map=0.71/0/0
I am the Co-Founder/CEO of https://www.tigrisdata.com/ and the author of this post where I discuss the API-driven approach for databases.
We, as developers, love APIs because it means we can concentrate on business logic and hand over other services to others. For example, if the app needs payment processing support, why build my own when I can integrate Stripe through its API?
We need to bring the same API-driven approach to databases as well. But it is not just a matter of putting an API layer in front of every database we have. We need to consolidate the everyday database operations such as CRUD, Search and Event Streaming down to a single API layer. This can only be achieved through a cohesively built platform.
I should mention Tigris[0] here. They're also a new Object Storage service, but they have this two-way replication facility with another S3-compatible service. The primary purpose they built it for is to mirror files from your existing S3 to Tigris as files are requested.
However they also have an option to copy files that are added to Tigris, to S3 automatically [1] (`--shadow-write-through`). I asked their founder if it's okay to use it as an extra redundancy continuously instead of a one-time migration, and they said they have no issues with it.
[0] https://www.tigrisdata.com
[1] https://www.tigrisdata.com/docs/migration/#starting-the-migration
Per Tigris Pricing[0]:
> While other cloud providers tax you for each GB of data transferred, we don't. At Tigris, we don't charge for regional data transfer, region-to-region data transfer, or data transfer out to the internet (egress) in the majority of use cases. However, if your bandwidth requirements are extraordinary, please reach out to us at sales@tigrisdata.com to discuss your requirements.
I wonder if a successful live video platform would count as extraordinary usage, I would assume so.
[0] https://www.tigrisdata.com/docs/pricing/
Yeah we do some similar tricks with our registry[0]: pushes and pulls from inside AWS are served directly from AWS for maximum performance and no data transfer cost. Then when the client is outside AWS, we redirect all that to Tigris[1], also for maximum performance (CDN) and minimum data transfer cost (no cost from Tigris, just the cost to move content out of AWS once).
[0]: https://depot.dev/blog/introducing-depot-registry
[1]: https://www.tigrisdata.com/blog/depot-registry/
It's more of a "accessibility layer" on top of S3 or any other s3-compatible backend (which means that it also works with MinIO out-of-the-box [0])
I don't think we'll ever build the underlying storage layer. I'm a big fan of what the Tigris[1] team have built if you're looking for other good s3 alternatives
[0] https://github.com/supabase/storage/blob/master/docker-compose.yml#L59
[1] Tigris: https://tigrisdata.com