Globally Distributed Object Storage with Tigris

There are three hard things in computer science: Cache invalidation Naming things Doing a better job than Amazon of storing files Of all the annoying software problems that have no business being annoying, handling a file upload in a full-stack a

Xe Iaso
8 min readadvanced
--
View Original

Overview

The article discusses Tigris, a globally distributed object storage solution that enhances file handling for modern applications, addressing the limitations of traditional storage methods like AWS S3. It highlights Tigris's ability to make object storage globally accessible and efficient, while integrating seamlessly with existing frameworks.

What You'll Learn

1

How to implement globally distributed object storage using Tigris

2

Why Tigris is a better alternative for file uploads compared to traditional S3 methods

3

How to configure Tigris for seamless integration with existing S3-compatible libraries

Prerequisites & Requirements

  • Understanding of object storage concepts
  • Familiarity with AWS S3 libraries(optional)

Key Questions Answered

What makes Tigris a better option for object storage than AWS S3?
Tigris offers a globally distributed architecture that allows for instant global access to objects, unlike AWS S3, which can suffer from latency issues due to its centralized nature. This makes Tigris particularly suitable for applications with users spread across different geographical locations.
How does Tigris achieve global distribution of data?
Tigris uses redundant FoundationDB clusters and Fly.io's NVMe volumes to cache raw data, distributing object data to multiple replicas in regions where demand exists. This ensures that data is accessible quickly and efficiently from anywhere in the world.
What is the process to set up Tigris for object storage?
To set up Tigris, you can use the command 'fly storage create' to initialize a new storage project. This command automatically configures necessary AWS S3 library settings, making integration straightforward without requiring changes to existing libraries.
What are the benefits of using Tigris for file uploads?
Tigris simplifies the process of handling file uploads by making them globally accessible and reducing the complexity associated with traditional CDN setups. It allows developers to focus on building applications without worrying about the underlying storage infrastructure.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Backend
Tigris
Used for globally distributed object storage
Database
Foundationdb
Used for tracking objects in Tigris architecture
Backend
AWS S3
Used as a reference point for object storage capabilities

Key Actionable Insights

1
Leverage Tigris to enhance the performance of your globally distributed applications by utilizing its object storage capabilities.
This is particularly useful for applications that require low latency access to data from various geographical locations, ensuring a better user experience.
2
Utilize the 'fly storage create' command to quickly set up Tigris for your application without extensive configuration.
This command streamlines the process, allowing developers to focus on application logic rather than infrastructure setup.
3
Consider the integration of Tigris with existing S3-compatible libraries to maintain consistency in your application’s architecture.
This approach minimizes disruption and allows for a smoother transition to a more efficient storage solution.

Common Pitfalls

1
Overcomplicating file upload processes by relying solely on traditional CDN setups.
This often leads to increased latency and complexity. Instead, using Tigris can simplify the architecture and improve performance.

Related Concepts

Object Storage
CDN Architecture
Global Data Distribution