Skip to content

Google Cloud Platform (GCP)

GCP is a cloud infrastructure platform.

Electric and GCP

You can use GCP to deploy any or all components of the Electric stack:

If you already run Postgres in GCP, then it's a great idea to also deploy Electric within the same network.

Need context?

See the Deployment guide for more details.

Deploy Postgres

GCP provides Postgres hosting via Cloud SQL or AlloyDB. Electric works with either. You need to configure them to enable logical replication and connect with the right user.

Cloud SQL

The default wal_level is replica. Change it to logical by setting the cloudsql.logical_decoding flag to on.

Customise your instance on setup

You can set flags in the "Flags" panel of the "Customise your instance" section of the create database page in the console, when setting up your database.

Be careful to connect using the "Outgoing IP address", not the "Public IP address". You will also need to create a new database user with REPLICATION. Log in using the default postgres user and then run something like this, changing the username and database name as necessary:

sql
CREATE ROLE electric WITH REPLICATION LOGIN PASSWORD '...';
GRANT ALL PRIVILEGES ON DATABASE "postgres" to electric;

You can then connect to Postgres from Electric as that user, which you can verify using e.g.:

shell
docker run -it -e DATABASE_URL=postgresql://electric:YOUR_PASSWORD@YOUR_OUTGOING_IP/postgres electricsql/electric:latest

AlloyDB

For AlloyDB, the flag to enable logical replication is called alloydb.logical_decoding.

Deploy Electric

GCP provides a wide range of container hosting. We recommend using Containers on Compute Engine or Google Kubernetes Engine (GKE).

For example, you can deploy Electric on a Container-Optimized OS with a Persistent Disk for storing Shape logs.

Don't use Cloud Run

We don't recommend that you use Cloud Run to deploy the Electric sync service because Cloud Run uses an in-memory filesystem and does not provide persistent file storage for Shape logs.

IPv6 support

If you're connecting to Postgres over IPv6 (for example, if you're connecting to Supabase Postgres) then you may need to be on a Premium Network Tier to configure IPv6 for your VPC. See this article for more details.

Deploy your app

GCP provides a range of website hosting options. For example you can deploy a static app to Google Storage with Cloud Build.