Skip to content

kubemq-io/gitbook-docs

Repository files navigation

Introduction

What is KubeMQ?

KubeMQ is a Kubernetes Message Queue Broker.

Enterprise-grade message broker and message queue, scalable, high available and secured. A Kubernetes native solution in a lightweight container, deployed in just one minute.

Main Features

  • All-batteries included Messaging Queue Broker for Kubernetes environment
  • Deployed with Operator for full life cycle operation
  • Blazing fast (written in Go), small and lightweight Docker container
  • Asynchronous and Synchronous messaging with support for At Most Once Delivery and At Least Once Delivery models
  • Supports durable FIFO based Queue, Publish-Subscribe Events, Publish-Subscribe with Persistence (Events Store), RPC Command and Query messaging patterns
  • Supports gRPC, Rest and WebSocket Transport protocols with TLS support (both RPC and Stream modes)
  • Supports Access control Authorization and Authentication
  • Supports message masticating and smart routing
  • No Message broker configuration needed (i.e., queues, exchanges)
  • .Net, Java, Python, Go and NodeJS SDKs
  • Monitoring Dashboard

Kubernetes Ready

Messaging Patterns

Queues

KubeMQ supports distributed durable FIFO based queues with the following core features:

  • Guaranteed Delivery - At-least-once delivery and most messages are delivered exactly once.
  • Single and Batch Messages Send and Receive - Single and multiple messages in one call
  • RPC and Stream Flows - RPC flow allows an insert and pull messages in one call. Stream flow allows single message consuming in transactional way
  • Message Policy - Each message can be configured with expiration and delay timers. In addition, each message can specify a dead-letter queue for unprocessed messages attempts
  • Long Polling - Consumers can wait until a message available in the queue to consume
  • Peak Messages - Consumers can peek into a queue without removing them from the queue
  • Ack All Queue Messages - Any client can mark all the messages in a queue as discarded and will not be available anymore to consume
  • Visibility timers - Consumers can pull a message from the queue and set a timer which will cause the message not be visible to other consumers. This timer can be extended as needed.
  • Resend Messages - Consumers can send back a message they pulled to a new queue or send a modified message to the same queue for further processing.

Pub/Sub

KubeMQ supports Publish-Subscribe (a.k.a Pub/Sub) messages patterns with the following core features:

  • Events - An asynchronous real-time Pub/Sub pattern.
  • Events Store -An asynchronous Pub/Sub pattern with persistence.
  • Grouping - Load balancing of events between subscribers

RPC

KubeMQ supports CQRS based RPC flows with the following core features:

  • Commands - A synchronous two ways Command pattern for CQRS types of system architecture.
  • Query - A synchronous two ways Query pattern for CQRS types of system architecture.
  • Response - An answer for a Query type RPC call
  • Timeout - Timeout interval is set for each RPC call. Once no response is received within the Timeout interval, RPC call return an error
  • Grouping - Load balancing of RPC calls between receivers
  • Caching - RPC response can be cached for future requests without the need to process again by a receiver

Interfaces

  • gRPC - High performance RPC and streaming framework that can run in any environment, Open source and Cloud Native.
  • Rest - Restful Api with WebSocket support for bi-directional streaming.

SDK

  • C# - C# SDK based on gRPC
  • Java - Java SDK based on gRPC
  • Go - Go SDK based on gRPC
  • Python - Python SDK based on gRPC
  • cURL - cURL SDK based on Rest
  • Node - Node SDK based on gRPC and Rest
  • PHP - PHP SDK based on Rest
  • Ruby - Ruby SDK based on Rest
  • jQuery jQuery SDK based Rest

Getting Started

Start with OpenShift

Get Enterprise Trial License

Contact us

Request a Demo

See KubeMQ in Action

About

gitbook git repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published