Links

KubeMQ Bridges

KubeMQ Bridges bridge, replicate, aggregate, and transform messages between KubeMQ clusters no matter where they are, allowing to build a true cloud-native messaging single network running globally.
Key Features:
  • Runs anywhere - Kubernetes, Cloud, on-prem, anywhere
  • Stand-alone - small docker container/binary
  • Build Any Topology - connects KubeMQ clusters in 1:1, 1:n , n:1, n:n
  • Middleware Supports - Logs, Metrics, Retries, and Rate Limiters
  • Easy Configuration - simple yaml file builds your topology
An example of a use case:
use-case

Concept

KubeMQ Bridges' concept is bridging between sources and targets, thus Bindings.
Binding can be any source kinds to any target kinds, as shown below:
concept
KubeMQ Bridges can support any binding topology :
Topology
Description
Sources-Targets
Bridge
a 1:1 connectivity mainly for sync type of messages
one source to 1 target
Replicate
a 1:n connectivity allowing replicating messages between clusters
one source to n targets
Aggregate
an n:1 connectivity allowing aggregating streams fo messages from clusters to a single target
n source to 1 target
Transform
an n:n mix and match sources and targets in many to many topology
n sources to n targets

Bridge

bridge

Replicate

replicate

Aggregate

aggregate

Transform

transform

Middlewares

In bindings configuration, KubeMQ Bridges supports middleware setting for each pair of source and target bindings.
These properties contain middleware information settings as follows:

Logs Middleware

KubeMQ Bridges supports level based logging to console according to as follows:
Property
Description
Possible Values
log_level
log level setting
"debug","info","error"
"" - indicate no logging on this binding
An example for only error level log to console:
bindings:
- name: sample-binding
properties:
log_level: error
sources:
......

Retry Middleware

KubeMQ Bridges supports Retries' target execution before reporting of error back to the source on failed execution.
Retry middleware settings values:
Property
Description
Possible Values
retry_attempts
how many retries before giving up on target execution
default - 1, or any int number
retry_delay_milliseconds
how long to wait between retries in milliseconds
default - 100ms or any int number
retry_max_jitter_milliseconds
max delay jitter between retries
default - 100ms or any int number
retry_delay_type
type of retry delay
"back-off" - delay increase on each attempt
"fixed" - fixed time delay
"random" - random time delay
An example of 3 retries with back-off strategy:
bindings:
- name: sample-binding
properties:
retry_attempts: 3
retry_delay_milliseconds: 1000
retry_max_jitter_milliseconds: 100
retry_delay_type: "back-off"
sources:
......

Rate Limiter Middleware

KubeMQ Sources support a Rate Limiting of target executions.
Rate Limiter middleware settings values:
Property
Description
Possible Values
rate_per_second
how many executions per second will be allowed
0 - no limitation
1 - n integer times per second
An example for 100 executions per second:
bindings:
- name: sample-binding
properties:
rate_per_second: 100
source:
......