From bc20178aa440c0728f375763100e31cbfc3cac2c Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 14:16:15 +0100 Subject: [PATCH 1/6] feat(haproxy): enable dynamic load balancing for SDK replicas using server-template --- docker/haproxy/haproxy.cfg | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docker/haproxy/haproxy.cfg b/docker/haproxy/haproxy.cfg index 55b3921..1b788aa 100644 --- a/docker/haproxy/haproxy.cfg +++ b/docker/haproxy/haproxy.cfg @@ -157,9 +157,7 @@ backend certbot_webroot_backend backend sdk_scheme_adapter_backend mode tcp balance roundrobin - ## Without dynamic DNS resolution - # server sdk_scheme_adapter1 sdk-scheme-adapter:4000 check - ## To use dynamic DNS resolution with single replica - server sdk_scheme_adapter1 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check - ## To use dynamic DNS resolution with multiple replicas - # server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check + # Use Docker DNS resolver to dynamically discover multiple SDK replicas + resolvers docker + # Multi-replica dynamic DNS resolution (works for 1 replica or 3+) + server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check init-addr none \ No newline at end of file From eec49cc04a34cda4356a5669f0018312a41a31e3 Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 14:41:20 +0100 Subject: [PATCH 2/6] docs: add instructions for scaling SDK replicas in README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index a77a49c..c884d38 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,12 @@ It is designed for **DFSPs (Digital Financial Service Providers)** who need a si - `--profile admin` (for portainer service for debugging purposes) - `--profile ttk` (for testing toolkit for testing purposes) +Optional: Scale SDK replicas + +By default, the SDK runs as a single replica. +For higher availability and load distribution, you can scale the SDK to multiple replicas. +Example: Run with 3 SDK replicas: + - ` --scale sdk-scheme-adapter=3` (for testing toolkit for testing purposes) ## Accessing Services From afbfc6dfde8c633c4e1ee1138e71bc34d0c916f7 Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 15:32:21 +0100 Subject: [PATCH 3/6] chore(haproxy): keep single-server config as reference --- docker/haproxy/haproxy.cfg | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/haproxy/haproxy.cfg b/docker/haproxy/haproxy.cfg index 1b788aa..4a28979 100644 --- a/docker/haproxy/haproxy.cfg +++ b/docker/haproxy/haproxy.cfg @@ -157,6 +157,12 @@ backend certbot_webroot_backend backend sdk_scheme_adapter_backend mode tcp balance roundrobin + ## Without dynamic DNS resolution + # server sdk_scheme_adapter1 sdk-scheme-adapter:4000 check + ## To use dynamic DNS resolution with single replica + ## server sdk_scheme_adapter1 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check + ## To use dynamic DNS resolution with multiple replicas + # server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check # Use Docker DNS resolver to dynamically discover multiple SDK replicas resolvers docker # Multi-replica dynamic DNS resolution (works for 1 replica or 3+) From 81a1d67578516d00ad748a0c0e5c772f0babf060 Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 16:13:33 +0100 Subject: [PATCH 4/6] fix(haproxy): remove redundant resolver declaration for SDK backend --- docker/haproxy/haproxy.cfg | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/haproxy/haproxy.cfg b/docker/haproxy/haproxy.cfg index 4a28979..7b1d8b1 100644 --- a/docker/haproxy/haproxy.cfg +++ b/docker/haproxy/haproxy.cfg @@ -163,7 +163,5 @@ backend sdk_scheme_adapter_backend ## server sdk_scheme_adapter1 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check ## To use dynamic DNS resolution with multiple replicas # server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check - # Use Docker DNS resolver to dynamically discover multiple SDK replicas - resolvers docker # Multi-replica dynamic DNS resolution (works for 1 replica or 3+) server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check init-addr none \ No newline at end of file From 73a2d50eb7cf9c49e09ed3f6b4242cf932425a85 Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 16:20:29 +0100 Subject: [PATCH 5/6] fix(haproxy): add missing newline at end of sdk_scheme_adapter_backend configuration --- docker/haproxy/haproxy.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/haproxy/haproxy.cfg b/docker/haproxy/haproxy.cfg index 7b1d8b1..976500b 100644 --- a/docker/haproxy/haproxy.cfg +++ b/docker/haproxy/haproxy.cfg @@ -164,4 +164,5 @@ backend sdk_scheme_adapter_backend ## To use dynamic DNS resolution with multiple replicas # server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check # Multi-replica dynamic DNS resolution (works for 1 replica or 3+) - server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check init-addr none \ No newline at end of file + server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check init-addr none + \ No newline at end of file From 0193b003517d98c71d6808d4ef1f2fdfe4573fd9 Mon Sep 17 00:00:00 2001 From: KhaledSaiidi Date: Thu, 19 Feb 2026 16:24:15 +0100 Subject: [PATCH 6/6] fix(haproxy): remove trailing newline in sdk_scheme_adapter_backend configuration --- docker/haproxy/haproxy.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/haproxy/haproxy.cfg b/docker/haproxy/haproxy.cfg index 976500b..dbc374a 100644 --- a/docker/haproxy/haproxy.cfg +++ b/docker/haproxy/haproxy.cfg @@ -165,4 +165,3 @@ backend sdk_scheme_adapter_backend # server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check # Multi-replica dynamic DNS resolution (works for 1 replica or 3+) server-template sdk 1-5 sdk-scheme-adapter:4000 resolvers docker resolve-prefer ipv4 check init-addr none - \ No newline at end of file