PostgreSQL Logical Replication Load-Balancing Example#32
Open
clauspruefer wants to merge 32 commits intomainfrom
Open
PostgreSQL Logical Replication Load-Balancing Example#32clauspruefer wants to merge 32 commits intomainfrom
clauspruefer wants to merge 32 commits intomainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a comprehensive example demonstrating PostgreSQL logical replication with load-balancing capabilities using Docker containers and a microservice-based ESB (Enterprise Service Bus) orchestrator.
Changes:
- Adds Docker-based multi-master logical replication setup with configurable network topology
- Implements JSON-RPC server infrastructure for managing database nodes
- Provides orchestration scripts for automated container deployment and configuration
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
| example/01-logical-replication/sysconfig.json | System configuration defining network topology, roles, and scaling parameters |
| example/01-logical-replication/svc_call_metadata.py | Service call metadata definitions for network topology updates and database initialization |
| example/01-logical-replication/orchestrator.py | Main orchestration script that creates Docker containers and initializes the database cluster |
| example/01-logical-replication/run-container.sh | Shell script for launching individual database node containers |
| example/01-logical-replication/docker-network.sh | Script to create Docker network with custom subnet configuration |
| example/01-logical-replication/docker-build.sh | Script to build the database node Docker image |
| example/01-logical-replication/docker-daemon/daemon.json | Docker daemon configuration disabling iptables |
| example/01-logical-replication/db-node.dockerfile | Dockerfile defining the PostgreSQL database node with JSON-RPC server |
| example/01-logical-replication/db-node-rpc/start-server.sh | Script to start the JSON-RPC server in containers |
| example/01-logical-replication/db-node-rpc/service_properties.py | Service property definitions for ESB validation |
| example/01-logical-replication/db-node-rpc/service_implementation.py | ESB service handler implementations for database and network operations |
| example/01-logical-replication/db-node-rpc/json-rpc-server.py | JSON-RPC server implementation for handling remote procedure calls |
| example/01-logical-replication/db-node-rpc/esbconfig.py | ESB configuration for importing service classes |
| example/01-logical-replication/db-node-rpc/class_reference.py | Class hierarchy definitions for service routing |
| example/01-logical-replication/db-node-rpc/class_mapping.py | Mapping definitions between service names and implementation classes |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
Add an example which demonstrates a) load balancing and b) write balancing. The example is using multiple docker container and a simple ESB driven orchestrator to setup a PostgreSQL multi-master logical replication environment.
Type of Change