👋 Welcome

We're Sync Inc. We help developers skip API integrations. We sync data from third-party APIs like Airtable and Stripe right to Postgres databases in real-time. We can sync data to a Postgres follower database that we host. Or we can sync right to your existing database.

At the moment, we support Airtable and Stripe, with more platforms on the way.

Getting started

Most developers are up and querying their data in about 2 minutes. See our platform-specific guides to get a step-by-step walk-through:

How it works

Real-time sync

We replicate data from third-party services to your database in real-time. Our syncs are fast, accurate, and resilient. We aim to make your Sync Inc database feel like connecting directly to the production Stripe or Airtable databases. So, we always back-fill historical data as well.

The "max lag time" of your database depends foremost on the platform you're syncing from.

For Stripe, our databases are never more than a second behind the Stripe API. (More about how our sync works for Stripe on our blog.)

For Airtable, lag time of the sync depends on (1) how big your base is and (2) how much of your base's API quota we're using. The lag time of your Airtable database is shown in your Sync Inc console. By default, we use 3 out of 5 of your alloted requests per second, but you can configure this in your console. (More about how our sync works for Airtable on our blog.)

Postgres databases

We only sync to Postgres databases. Support for others coming soon. (Write us and let us know which you'd like to see!)

Destinations

We sync to two types of destinations: Sync Inc-hosted and self-hosted.

Shared (Sync Inc-hosted)

To get started as fast as possible, Sync Inc can provision you a private database on a shared AWS RDS instance.

Our hosted databases are in the AWS `us-west-2` region in Oregon, USA. Provisioning takes just a few seconds.

Self-hosted

Sync Inc can also sync right to a schema in any existing Postgres database. This means you can query your data from third-party APIs without leaving your database!

We're working on making setup for a self-hosted database full automated. For now, send us a note and we'll get you setup. You'll create a Sync Inc user in your Postgres database and then grant that user access to the schemas you want us to sync to. You'll then securely send these credentials to us and we'll set up your sync.

Schemas

For static schemas like Stripe, we've worked hard to translate their data model to something that's easy to use in SQL. You can see the full schema here.

For dynamic, user-defined schemas like Airtable, we'll take care of setup and migrations for you. After you modify columns or tables, you'll see those schema changes reflected in your database within a few minutes. You can learn more here.

Foreign key limitations

Foreign keys serve two primary purposes:

  1. To maintain referential integrity (i.e. assert that a row can never reference a row that does not exist)
  2. To help database tools infer the relationships of models in your database (e.g. ORMs)

At this time, your database will not contain any foreign keys. This is due to the challenges they pose to our sync operation (changes getting synced in the wrong order).

For #1, because your Sync Inc database is read-only, foreign keys are not needed to maintain your database's integrity. (The API platform your syncing data from will take care of that.)

For #2, we're exploring "synthetic foreign keys" to help ORMs and other tools interpret the data structure of your Sync Inc database. More soon.

If this is blocking you in any way, send us a note.

One-way data flow

Your Sync Inc database is read-only. Our mantra is "read from databases, write to APIs". For reads, you can bypass the hassle of HTTP and REST and just use SQL for data access. For writes, it makes sense to run mutations through the service provider’s validation stack and handle any validation or insert errors in your code.

This is a one-way data flow: read from your Sync Inc database, write to the service’s API (e.g. Airtable or Stripe).

To make this architecture work, we provide strategies around writes for each platform.

For Airtable, you'll write to Airtable through our proxy. Our proxy applies the write to both Airtable and your Sync Inc database at the same time. You can read more about the proxy here.

For Stripe, we provide a `/wait` endpoint. Call this endpoint after you've made a write to Stripe's API. This endpoint will hold open until we've confirmed that your Stripe database is up-to-date. When it is, the request returns.

ORMs

Sync Inc provides you with a Postgres database that works seamlessly with the entire Postgres ecosystem - including ORMs.

You'll simply configure your ORM to connect with your Sync Inc database using the connection URL we provide in the Sync Inc console.

To improve your experience with ORMs, we are building open source schema generators. These are in preview. If you want access, email us.

See it

Want to get a feel for how this all comes together? Check out this short video:

Questions and support

Our docs won't be able to cover everything, so if you have any issues, don't hesitate to reach out through Intercom on the bottom left. We'd love to hear what you're building.

Setup

Was this helpful?