We're Sequin. 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, Stripe, Close, Twilio, Shopify with more platforms on the way.
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:
We replicate data from third-party services to your database in real-time. We make your Sequin database feel like connecting directly to the production databases of third-party services. This means:
- we back-fill historical data
- our sync process for your database is always running to keep your data in sync
The "max lag time" of your sync depends foremost on the platform you're syncing from.
For all syncs aside from Airtable (like Stripe and Close), our databases are never more than a few seconds behind the API. (More about how our sync works for Stripe on our blog. Close and Shopify mirror this sync strategy.)
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 Sequin 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.)
We only sync to Postgres databases. Support for others coming soon. (Write us and let us know which you'd like to see!)
We sync to two types of destinations: Sequin-hosted and self-hosted.
To get started as fast as possible, Sequin 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.
Sequin 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!
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 keys serve two primary purposes:
- To maintain referential integrity (i.e. assert that a row can never reference a row that does not exist)
- To help database tools infer the relationships of models in your database (e.g. ORMs)
At this time, if you're syncing from Airtable 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 Sequin 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 Sequin database. More soon.
If this is blocking you in any way, send us a note.
Your Sequin 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 Sequin 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 Sequin database at the same time. You can read more about the proxy here.
For all other platforms, we provide a
`/wait` endpoint. Call this endpoint after you've made a write to the platform's API. This endpoint will hold open until we've confirmed that your database is up-to-date. When it is, the request returns.
Sequin 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 Sequin database using the connection URL we provide in the Sequin console.
To improve your experience with ORMs, we are building open source schema generators. These are in preview. If you want access, email us.
Want to get a feel for how this all comes together? Check out this short video:
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.