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:
    ......

Last updated

Was this helpful?