A message queue system or message broker is designed to facilitate asynchronous communication between various components or services within a distributed system. It acts as a middleman, allowing producers to send messages to a queue and consumers to retrieve and process those messages at their own pace.

The primary purpose of a message queue is to decouple the sending and receiving of messages, enabling more scalable and resilient architectures. It ensures that messages are reliably delivered even if the sender and receiver are not available simultaneously or experience temporary spikes in load.

A decentralized message queue extends these benefits by distributing the messaging infrastructure across multiple nodes or peers rather than relying on a centralized server.

What is FoxMQ?

FoxMQ is a decentralized message queue or broker service focusing initially on V5 of the MQTT protocol, utilizing the Tashi Consensus Engine (TCE) as a means of network transport affording all the advantages the unique transport offers. TCE is a consensus protocol, written in RUST, offering advantages in terms of performance, safety, concurrency, portability and security.

What does FoxMQ solve that other MQs don't?

In centralized message queue systems, such as RabbitMQ or HiveMQ, there's a single cluster or broker that acts as a bottleneck for all message traffic. If this central cluster fails or experiences downtime due to hardware issues, maintenance, network problems, or message corruption leading to queue stalling, service can be significantly impacted.

FoxMQ addresses this pain point by distributing the message queue functionality across multiple nodes or servers. Each node in FoxMQ acts as both a producer and a consumer of messages, and messages can be routed dynamically between nodes using our consensus logic.

With FoxMQ, if one node fails or becomes unavailable, other nodes in the network can continue to operate independently, ensuring high availability and fault tolerance. This resilience to single points of failure minimizes the risk of downtime and ensures continuous operation even in the face of catastrophic failures or disruptions, thereby improving the overall reliability and robustness that FoxMQ offers.

FoxMQ provides the following benefits:

  • Fair ordering: This property is not available without using a consensus protocol. Where multiple parties or interests are submitting messages to a message queue, how those messages are ordered and broadcast to consumers is important. FoxMQ solves this by leveraging Tashi's consensus protocol, ensure that all messages are mathematically ordered and thus fair. This is often an underrated feature when initially selecting a message queue solution, but becomes significantly more valuable as the order of messages in a system becomes necessary; especially when parties are competing for market or inventory position.

  • High availability: A consensus-based protocol requires that all peers in the message queue network receive each message before all messages can be ordered. In this way, all peers end up with identical message states and can independently serve subscribers. The result is a highly available network of message queue nodes that all stay in sync.

  • Simplicity: Configuring a network of message queues becomes as simple as distributing the configuration file to each peer and starting a node locally. Each node will now stay in sync.

How does it work?

FoxMQ utilizes the Tashi Consensus Engine. When a local client submits a message, it's dispatched to other local clients and also copied to TCE. Other nodes in the network will dispatch the message when it comes to consensus through TCE.

Who should use FoxMQ?

Our initial launch product will focus on the MQTT protocol, a lightweight protocol often used in the IOT. Therefore anyone with a distributed network who is looking for a highly available, light weight, low overhead and secure solution for their message broker needs should take a look at FoxMQ.

We will continually iterate on MQTT as a protocol within FoxMQ as well as look to incorporate additional protocols such as STOMP or AMQP in the future based on feedback from our users.

Other use cases for FoxMQ as an alternative message broker service include:

  • Startups and small businesses: Startups and small businesses that prioritize flexibility, cost-effectiveness, and rapid scaling will find FoxMQ appealing. These organizations often need to optimize their resources and infrastructure while ensuring reliable communication between different components of their applications or services.

  • Enterprises with distributed systems: Companies that operate distributed systems, such as large-scale e-commerce platforms, social media networks, or financial institutions processing transactions across multiple locations, can benefit from FoxMQ. These organizations often require high availability, security, fault tolerance, and scalability, which the FoxMQ using TCE architecture can provide more effectively than a centralized broker service.

  • Developers of decentralized applications (dApps): Developers building decentralized applications on blockchain platforms or peer-to-peer networks could leverage FoxMQ to facilitate communication and coordination between various nodes or smart contracts. Decentralized messaging is fundamental to maintaining the integrity and functionality of dApps in a distributed environment.

  • Researchers and academic institutions: Researchers and academic institutions studying distributed systems, peer-to-peer networks, or blockchain technology may be interested in experimenting with FoxMQ and TCE to understand its potential benefits and additional applications of our technology. Such experimentation can contribute to advancements in distributed computing and networking technologies.

  • Government agencies and NGOs: Government agencies, non-governmental organizations (NGOs), or humanitarian groups involved in disaster response, public health monitoring, or other mission-critical activities would find FoxMQ useful for establishing resilient communication networks in remote or disaster-prone areas where centralized infrastructure may be unreliable or unavailable.

  • Cloud service providers: Cloud service providers offering infrastructure-as-a-service (IaaS) or platform-as-a-service (PaaS) solutions could incorporate FoxMQ into their offerings to provide customers with more options for building resilient and scalable distributed applications in the cloud.

Last updated