Sign in

Tigris Data

@tigrisdata.com
228 followers 375 following 443 posts

Tigris is a globally distributed S3-compatible object storage service that provides low latency anywhere in the world. | tigrisdata.com | Based in SFO

PostsRepliesMedia
Tigris Data @tigrisdata.com · 22/09/2026
Either way if you want to learn more from a detailed writeup by a human with blood, feelings, and hopefully isn't an axe murderer, please take a look at the blogpost! www.tigrisdata.com/blog/quick-f...
tigrisdata.com
We used a database as a message queue. Now we use Kafka. | Tigris Object Storage
FoundationDB was our only database, queue included. We built Apple's QuiCK design on top of it, hit the write limits, and moved async tasks to Kafka.
010
Tigris Data @tigrisdata.com · 22/09/2026
We fixed that by adding Kafka to the stack. Kafka has a...reputation for being a bit grotestue in the infrastructure side of things (the zookeeper can't even pet the animals 😔), but we've found that using it means we take write pressure off of FoundationDB so the servers stay up.
110
Tigris Data @tigrisdata.com · 22/09/2026
Either way, this queue system has worked great for us but we ran into one small problem: customers love our product too much which means we hit a FoundationDB write pressure threshold just high enough it was causing production issues. Oops!
100
Tigris Data @tigrisdata.com · 22/09/2026
In a slightly dystopian bent, workers own no jobs yet still will be happy as they lease them from the queue by pushing them forward into the future such that other workers don't try to pick them up.
100
Tigris Data @tigrisdata.com · 22/09/2026
If a job finishes instantly, that's great. The job reaches message queue enlightenment and re-enters the cosmic background radiation until its time is needed next. If not, the job is trapped in a near endless cycle of rebirth bouncing between workers until one doesn't crash this time, we hope.
100
Tigris Data @tigrisdata.com · 22/09/2026
Obviously when we needed a message queue we started by reading a paper by Apple about how they turned FoundationDB into what basically amounts to Kafka. This gives us reliable delivery and scheduling in the same lines of code. It's kinda remarkable how simple it is: jobs identify when they are run.
100
Tigris Data @tigrisdata.com · 22/09/2026
Tigris is basically a database company that turned into an object storage company, so we have a lot of opinions about what you can do with them. We use FoundationDB as the backbone of our business. Wouldn't it be great to insert message queue items in the same transaction as inserting data?
121
Tigris Data @tigrisdata.com · 15/09/2026
Want to learn more? Read on the blog: www.tigrisdata.com/blog/objgit-...
tigrisdata.com
You can run git on object storage if you re-make packfiles | Tigris Object Storage
Git packfiles were designed for mmap and local disk, so pulling one object out of a bucket means guessing at a byte range. I wrote a new format instead.
121
Tigris Data @tigrisdata.com · 15/09/2026
So Xe invented a new brave format that does store enough information to construct ranged get requests. This ended up making Git object storage on top of Tigris object storage upwards of 4.5-14.6 times faster than the old approach of badly adapting filesystem interfaces to Tigris.
151
Tigris Data @tigrisdata.com · 15/09/2026
Git works around this by packing objects into packfiles. Packfiles are a bunch of objects concatentated together with an index telling you where to look to get any object in particular. The only downside is that Git packfile indices don't give enough information to construct ranged get requests.
120
Tigris Data @tigrisdata.com · 15/09/2026
Those objects end up being fairly small, so you'd think "oh, Tigris is good at small objects, I can just put every object into Tigris and then everything will be fine forever with free happy puppies, right?" Turns out, not really because light is only so fast.
141
Tigris Data @tigrisdata.com · 15/09/2026
This is partially a lie because Git tracks the _entire file_ at any given point in history. Every copy of all of those versions of all of those files are stored in objects which are named after the checksum of their contents (content-aware storage).
120
Tigris Data @tigrisdata.com · 15/09/2026
A terrible way to think about Git is that it tracks the changes made to an empty folder and through those changes you reconstruct the history of your application's source code.
130
Tigris Data @tigrisdata.com · 15/09/2026
If our objgit post was so good last time, where's objgit post 2? Today we have an update on the epic saga of Xe reinventing Git storage on top of object storage: making seek-native packfiles. What does this mean? Well, git is complicated. Huddle into this thread!
tigrisdata.com
You can run git on object storage if you re-make packfiles | Tigris Object Storage
Git packfiles were designed for mmap and local disk, so pulling one object out of a bucket means guessing at a byte range. I wrote a new format instead.
1203
Tigris Data @tigrisdata.com · 21/08/2026
The local disk is a cache with a size limit. Cold blocks get evicted, and when they are needed again they get fetched again. Every machine in the fleet does this independently, for as long as the cluster is running. With Tigris, they never cost egress either. kvcache-ai.github.io/AgentENV/lat...
kvcache-ai.github.io
Configuration Reference - AgentENV Documentation
000
Tigris Data @tigrisdata.com · 21/08/2026
An agent can run off a VM image that is larger than the disk it runs on. AgentENV by KVCache.AI keeps microVM disk images in object storage and pulls down only the blocks each machine actually needs. That is how image size stops being limited by local disk.
110
Tigris Data @tigrisdata.com · 20/08/2026
Our S3 compatible backend is now in CubeSandbox -Tencent Cloud's open source microVM runtime for AI agents. Docs: cubesandbox.com/guide/integr...
cubesandbox.com
Tigris Volume Integration Guide | CubeSandbox
Instant, Concurrent, Secure & Lightweight Sandbox Service for AI Agents
000
Tigris Data @tigrisdata.com · 20/08/2026
1. With a volume plugin, 𝗰𝗿𝗲𝗱𝗲𝗻𝘁𝗶𝗮𝗹𝘀 𝗻𝗲𝘃𝗲𝗿 𝗲𝗻𝘁𝗲𝗿 𝘁𝗵𝗲 𝘀𝗮𝗻𝗱𝗯𝗼𝘅 and isolation is stronger. The keys stay in a root-owned config on the host. 2. Since mounts are reference-counted per node, 𝗼𝗻𝗲 𝗱𝗮𝘁𝗮𝘀𝗲𝘁 𝘀𝗲𝗿𝘃𝗲𝘀 𝗺𝗮𝗻𝘆 𝘀𝗮𝗻𝗱𝗯𝗼𝘅𝗲𝘀. Model weights mount read-only into every agent on a box from a single copy.
100
Tigris Data @tigrisdata.com · 20/08/2026
Agent sandboxes are ephemeral on purpose. However, everything the agent produced dies unless it lived somewhere else. A bucket is reachable from every node.
cubesandbox.com
Tigris Volume Integration Guide | CubeSandbox
Instant, Concurrent, Secure & Lightweight Sandbox Service for AI Agents
100
Tigris Data @tigrisdata.com · 20/08/2026
𝗪𝗵𝘆 𝗽𝘂𝘁 𝗮𝗴𝗲𝗻𝘁 𝘀𝗮𝗻𝗱𝗯𝗼𝘅 𝘀𝘁𝗮𝘁𝗲 𝗶𝗻 𝗼𝗯𝗷𝗲𝗰𝘁 𝘀𝘁𝗼𝗿𝗮𝗴𝗲? For one sandbox on one machine, a host mount is fine. It starts to matter 𝘄𝗵𝗲𝗻 𝘆𝗼𝘂 𝗿𝘂𝗻 𝗮 𝗳𝗹𝗲𝗲𝘁, where sandboxes are created and destroyed constantly and land on whichever node has room.
cubesandbox.com
Tigris Volume Integration Guide | CubeSandbox
Instant, Concurrent, Secure & Lightweight Sandbox Service for AI Agents
120
Tigris Data @tigrisdata.com · 18/08/2026
Read more on the blog: www.tigrisdata.com/blog/fdb-kre...
tigrisdata.com
Building a global object store on FoundationDB | Tigris Object Storage
How Tigris composes ACID metadata, global placement, caching, replication, and background work into a multi-region object store.
021
Tigris Data @tigrisdata.com · 18/08/2026
How does Tigris work? What are the moving parts? Today we have a transcript of our CTO Himank's talk about how Tigris works at a high level and how FoundationDB makes it possible.
100
Tigris Data @tigrisdata.com · 11/08/2026
Today we're going to dive into how the soft-delete feature works so you can learn what goes into making object storage that developers crave. Read more on the blog: www.tigrisdata.com/blog/soft-de...
tigrisdata.com
Extending immutability: deletion without losing data | Tigris Object Storage
Deleting data is hard in a geo-replicated active-active database. Here's how Tigris built a Recycle Bin for objects and buckets on top of immutable storage.
000
Tigris Data @tigrisdata.com · 11/08/2026
Delete doesn't have to mean the data is gone. Tigris lets you un-delete your most precious objects and buckets if you(r agent) didn't really mean to actually remove it for others.
100
Tigris Data @tigrisdata.com · 30/07/2026
When you change your chunking or swap embedding models, every document gets pulled from storage again. If you point RAGFlow at a Tigris bucket - you can re-process your corpus for free, all the time. Setup Guide: www.tigrisdata.com/docs/guides/...
tigrisdata.com
RAGFlow on Tigris | Tigris Object Storage Documentation
Use Tigris as RAGFlow's storage backend: replace the bundled MinIO container with globally distributed, zero-egress-fee object storage for your knowledge base. Full config, single-bucket mode, and sna...
000
Tigris Data @tigrisdata.com · 30/07/2026
If you use RAGFlow by InfiniFlow to answer questions from your documents, everything it knows lives in its storage backend. By default, if you use MiniIO, RAGFlow re-reads your corpus every time you tune it.
100
Tigris Data @tigrisdata.com · 29/07/2026
Most importantly, fork a bucket, run your suite and delete the fork. You only pay for the diff. opendal.apache.org/docs/rust/op...
opendal.apache.org
S3 in opendal::services - Rust
Aws S3 and compatible services (including minio, digitalocean space, Tencent Cloud Object Storage(COS) and so on) support. For more information about s3-compatible services, refer to Compatible Servic...
010
Tigris Data @tigrisdata.com · 29/07/2026
@apache.org OpenDAL fully supports Tigris Data. This storage layer with one API across 50+ backends, in 17 languages. Tigris config is just three lines. Get the benefit of multi-region workers, with no cross-region egress charges and no per-region bucket topology to maintain.
100
Tigris Data @tigrisdata.com · 28/07/2026
9/ Which parts of your setup flow are easy to describe, easy to verify, and annoying to implement? That's the hole agents fit into. Full post: www.tigrisdata.com/blog/humans-...
tigrisdata.com
Humans don't install software themselves anymore, their agents do | Tigris Object Storage
The era of manual install scripts is over. Why agent-native onboarding keeps developers in flow, what tigris init --agent prints, and how to write the prompt.
000
Tigris Data @tigrisdata.com · 28/07/2026
8/ So tigris init has two doors. The wizard for humans in a shell, where installing to an agent is safe because the agent hasn't started. The --agent recipe in plain text, because text is the only thing that works reliably from inside a session.
100
Tigris Data @tigrisdata.com · 28/07/2026
7/ Lesson learned the hard way: agents can't install their own config. I shipped skills, the agent installed them, and then behaved like nothing changed. Skills are executable code and the agent can't tell your integration from a crypto miner.
100
Tigris Data @tigrisdata.com · 28/07/2026
6/ "Ask before creating access keys" beats "don't create access keys silently." Prohibitions get unreliable when they're buried far upstream of the action. But positive phrasing is a reliability technique. Magic adverbs are not a security mechanism.
100
Tigris Data @tigrisdata.com · 28/07/2026
5/ Four things decide whether the prompt works: ask permission before acting, prefer heuristics over mandates, keep credentials out of the context window, phrase everything positively.
100
Tigris Data @tigrisdata.com · 28/07/2026
4/ The agent needs none of that. Worst case it explores the repo and figures out how you build and deploy. Give it the goal, not the mechanism.
100
Tigris Data @tigrisdata.com · 28/07/2026
3/ A portable setup script has to identify the language, the dependency manager, and which dependency manager wins when a project has three. Then be right about every OS and CI environment. Every failure is a support ticket.
100
Tigris Data @tigrisdata.com · 28/07/2026
2/ Your onboarding funnels people into two buckets: users of the framework you picked, and everyone else. Everyone else gets the API reference and good luck. I've been everyone else. I closed the tab.
100
Tigris Data @tigrisdata.com · 28/07/2026
1/ The era of manual install scripts for Blessed Frameworks™ is over. New post on `tigris init --agent` and why agent-native onboarding is becoming the baseline.
110
Tigris Data @tigrisdata.com · 23/07/2026
This could be a Snowflake query, a DuckDB analysis, or a training job on GPUs. Tigris Data has no egress fees. Write your data once, read it back from anywhere, as many times as you want, for free. Full setup guide: www.tigrisdata.com/docs/guides/...
000
Tigris Data @tigrisdata.com · 23/07/2026
If you use dlt by dltHub to move data, you can set up the pipeline to save your results into a cloud storage bucket that everything else reads from. Most teams put that bucket on AWS, right next to the pipeline. However, when something reads the data back, AWS charges an egress fee.
100
Tigris Data @tigrisdata.com · 22/07/2026
We wrote a guide for running ClickHouse on Tigris global storage instead. It covers backups and restores, tiered storage, and querying data in place. Full guide: www.tigrisdata.com/docs/guides/...
tigrisdata.com
ClickHouse® on Tigris | Tigris Object Storage Documentation
If you self-host ClickHouse on Fly.io, Hetzner, OVH, or your own hardware, you
000
Tigris Data @tigrisdata.com · 22/07/2026
If you self-host ClickHouse, you need to avoid paying egress every time your cluster reads its own data back. The standard production playbook assumes an S3 bucket sitting next to your cluster. So you point at AWS, and every restore, audit query, and backfill turns into a bandwidth bill.
100
Tigris Data @tigrisdata.com · 21/07/2026
We benchmarked @TigrisData vs S3 vs R2 on 10M small objects...agent state, checkpoints, logs etc. p90 reads: 7.9ms (Tigris) vs 42ms (S3) vs 681ms (R2)Sub-10ms means object storage stops being an archive and starts being your app's working memory. Full report: www.tigrisdata.com/blog/benchma...
010
Tigris Data @tigrisdata.com · 16/07/2026
A 500 TB restore costs tens of thousands of dollars. That's why nobody tests their backups, and the first real test happens mid-outage. Just use BACKUP TO S3 and TTL tiering.. Point them at a bucket that doesn't charge egress and the scariest line item in your DR plan drops to zero.
000
Tigris Data @tigrisdata.com · 16/07/2026
One of the quiet lies of self-hosted @ClickHouseDB is that your hot data lives on your hardware. Your backups and cold partitions usually live on AWS S3, and AWS charges $0.09/GB to read your own bytes back. www.tigrisdata.com/blog/clickho...
tigrisdata.com
The Most Expensive ClickHouse Query Is the Restore | Tigris Object Storage
Self-hosted ClickHouse runs on cheap compute, but its backups and cold tier usually live on AWS S3, and AWS charges $0.09/GB to read your own data back. Point BACKUP TO S3 and TTL tiering at Tigris in...
200
Tigris Data @tigrisdata.com · 14/07/2026
Read more on the blog: www.tigrisdata.com/blog/presign...
tigrisdata.com
Presigned URLs are technically a security vuln | Tigris Object Storage
Presigned URLs are replay attacks you commit on purpose. How SigV4 signs the clock, what a presigned URL grants on Tigris storage, and what it costs you.
000
Tigris Data @tigrisdata.com · 14/07/2026
When dealing with complicated authentication schemes, sometimes the biggest weakness in your process is actually the key thing that makes a feature possible. Learn about how presigned URLs work in object storage and how they flip a weakness into a feature!
tigrisdata.com
Presigned URLs are technically a security vuln | Tigris Object Storage
Presigned URLs are replay attacks you commit on purpose. How SigV4 signs the clock, what a presigned URL grants on Tigris storage, and what it costs you.
110
Tigris Data @tigrisdata.com · 13/07/2026
Storing checkpoints agent sources in object storage is the best way to run parallel fleets of agents, all experimenting and building up knowledge at the same time. Let us know what you think an agent is: www.tigrisdata.com/blog/where-d...
tigrisdata.com
Where Does the Agent Live? | Tigris Object Storage
Your agent runs in a disposable sandbox, but it can't live there. A breakdown of everything in the agent's world, and why it should be one forkable bucket.
000
Tigris Data @tigrisdata.com · 13/07/2026
What is an agent? Is it the LLM......the harness?....the context? We think it's the state. You can burn everything down, but you will always be able to rebuild an agent from its state files. State files can either be stored in a database, or in a plain s3 bucket.
tigrisdata.com
Where Does the Agent Live? | Tigris Object Storage
Your agent runs in a disposable sandbox, but it can't live there. A breakdown of everything in the agent's world, and why it should be one forkable bucket.
100
Tigris Data @tigrisdata.com · 10/07/2026
Take a look: github.com/storagesdk/s...
github.com
GitHub - storagesdk/storagesdk: A unified TypeScript SDK for storage with first-class support for snapshotting, forking across Tigris, Amazon S3, Cloudflare R2, GCS, Azure Blob, Vercel Blob and many more.
A unified TypeScript SDK for storage with first-class support for snapshotting, forking across Tigris, Amazon S3, Cloudflare R2, GCS, Azure Blob, Vercel Blob and many more. - storagesdk/storagesdk
000
Tigris Data @tigrisdata.com · 10/07/2026
Object storage finally branches like Git We helped ComputeSDK build storagesdk. With this universal SDK, you can fork a bucket, let an agent or experiment run wild, then keep it or throw it away. Your production data never moves and the agent knowledge base is secure.
110