Skip to main content

Distributed Data on CloudFlow

Native Data on CloudFlow

Ephemeral Volumes

Whenever your container opens a file for writing, you are using CloudFlow's ephemeral volumes. This storage goes away when the pod terminates.

Persistent Volumes

By using a Persistent Volume Claim you can share a filesystem across multiple pods. Using this technology you can share virtually any data technology between pods, such as relational databases, document stores, object stores, key-value stores, and message queues. Sharing across pods can occur in the following instances:

  • horizontal scaling of a pod, so that the multiple replicas have access to shared data
  • different pods of a microservice application, giving those pods a common source of truth for whatever data they might need
  • data that needs to survive a pod that crashes and restarts

Check out our tutorial to see how this works for a Postgres deployment.

Streaming Database Backups

Depending upon your circumstances, when you house your database at an edge location then you may wish to stream a backup to a more permanent location such as AWS S3, Azure Blob Storage, Wasabi, Exoscale, etc. Litestream.io supports this idea for SQLite.

Re-populating a Database as CloudFlow Relocates It

Streaming backup technology, such as Litestream.io mentioned previously, can also be used to repopulate a database as CloudFlow moves your project from one region to another.

Synchronized Databases

Strategies for sharing data between locations include configuring replication to occur between persistent volumes residing in different locations. We have a guide that explains how you can set this up (coming). You might choose to use a static location configuration for your project and then replicate data between them in order to provide a globally-distributed persistent data.

Serverless Data Integrations

Below are a few managed serverless data offerings that we are aware of at CloudFlow. We've written tutorials for a few. Almost all offer some kind of multi-region replication, which is useful for disaster recovery, high-availability, and low-latency reads for better performance for geographically distributed end users. Those that support multi-region writes are listed separately. The data landscape has lots of options to choose from, many of them free for limited usage.

Data TypeSingle-Region WriteMulti-Region Write
Relational (SQL)Supabase, Neon, Aiven for PostgreSQL, bit.io (Postgres compatible)Polyscale.ai, CockroachDB Serverless (multi-region write is in preview)
Document (NoSQL)MongoDB AtlasFaunaDB, DataStax Astra DB (Cassandra-based), HarperDB, Couchbase Capella
Key-valueZippyDB, Aiven Redis, ScaleGrid RedisUpstash Redis
Object storageWasabi, BackblazeSynadia Jetstream Object Store (NATS.io-based)
Message QueueUpstash KafkaSynadia (NATS.io-based)