Postgres Database acting as a Broadcast Channel
One of the containers that is handled inside the docker-compose.yml
config is the broadcast channel.
When scaling the OPAL Server to multiple nodes and/or multiple workers, we use a broadcast channel to sync between all the instances of the OPAL Server.
services:
broadcast_channel:
image: postgres:alpine
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
With this configuration, you can specify what channel we want to subscribe too, and in this case, it's a PostgreSQL Database.
tip
If you run only a single worker it is not necessary to deploy a broadcast backend.
We do not recommend running a single worker in production.
These are the currently three supported broadcast backends:
- PostgreSQL
- Redis
- Kafka
The format of the broadcaster URI string OPAL_BROADCAST_URI
is specified below for Postgres. A similar pattern will apply for
Redis and Kafka.
environment:
- OPAL_BROADCAST_URI=postgres://postgres:postgres@broadcast_channel:5432/postgres