Some other messaging systems have a rigid notion of a hierarchical topic space. Wildcard matches are permitted only within the limits of this space.
LBM imposes no structure on the topic space at all. Our topics are simply strings, though applications often impose their own hierarchical or otherwise organizational scheme on them. Wildcard matches in LBM are performed using regular expressions or user-defined matching functions. See Section 7.4 for details on how LBM efficiently filters messages for wildcard receivers.
LBM Benefits. LBM's unstructured topic space frees developers to use non-hierarchical structures when appropriate. The power of regular expression matching adds flexibility to production systems.
Other systems need to manually configure information about sources into all interested receivers. An example of such information is the transport multicast address that a source uses.
LBM receivers use a built-in topic resolution mechanism to dynamically discover transport information that sources use.
LBM Benefits. Dynamic Transport discovery drastically simplifies the administrative tasks involved in the building and ongoing operation of a messaging system. It is easy to reconfigure LBM sources without having to reconfigure receivers.
Other messaging systems limit configuration choices hoping that by limiting them they will reduce the support effort needed to diagnose possible customer misconfiguration. Limited configuration choices often lead to assumptions and compromises that then result in sub-optimal performance or functional problems for some applications. Some of the many LBM configuration choices are covered in Section 2.4, Section 4.3, and Section 4.1.
LBM has been designed with many configuration options that can be used to optimize performance and functionality for most applications. A staff of professionals experienced in high-performance messaging systems is available to answer support questions on even the most demanding applications. See Section 5.4 for more on how LBM is supported.
LBM Benefit. LBM can be easily configured for the highest-possible performance in any application.
Other messaging systems include the topic string with every message payload sent. Transporting the topic string, especially with longer topics, may account for a substantial fraction of the effort required to deliver a message.
Other systems require that the topic string accompanying each arriving message be compared against a list of topics indicating receiver interest. At best, such designs involve hashing the topic string for each arriving message. At worst, it requires repeated string comparison.
LBM sources automatically assign a unique integer for each topic on each transport session. LBM receivers learn of the correspondence between topic strings and integers through topic resolution traffic. This traffic is carried separately from message transport sessions and sent only when needed. Receiver interest is checked for each arriving message by a simple integer hash that is independent of topic string length. See Section 7.2 for another benefit of the topic resolution process.
At wildcard receiver creation time, LBM evaluates the regular expression pattern against all known topics and again later against each new topic as it is discovered. LBM transparently creates a list of single-topic receivers that match the wildcard pattern and associates it with the wildcard receiver object. Filtering of arriving messages for wildcard receivers is thus performed with the integer hash speed of single-topic receivers. The regular expression is not evaluated for each arriving message.
LBM Benefits. LBM reduces the impact of long topic strings and the network bandwidth used to carry topic strings. It provides extremely high-performance receiver-side message filtering, even for wildcard receivers.
Messaging systems built with daemons or servers have a single point of failure in the daemon or server. They may use complex logic to detect and recover from failures of these components. Further, applications may need their own logic to detect and recover from failures of messaging infrastructure.
LBM has no daemons or servers and hence no need for internal failure detection or recovery logic. See Section 2.1 for details. Applications do not need logic to detect failure of the messaging system or recover from such failures. All message delivery code is implemented as shared libraries that dynamically link into the address space of the application. LBM is ready for messaging as long as the application is running.
LBM Benefits. You can use LBM to easily build and operate highly reliable systems.
Other messaging systems use a hot/cold failover model to achieve failure resilience. Some of these systems require a cold message source to monitor the operation of the current hot source (sending messages) and decide when to become hot. Some require that receivers monitor the current hot source and decide when to switch to the cold source. Either way, after a failure time must pass before messages can start flowing again. This failover latency is inherent in all hot/cold designs because only the passage of time without messages can trigger failover.
LBM offers an optional hot/hot failover model that has zero failover latency. Two or more sources remain hot at all times. An LBM hot failover receiver monitors message sequence numbers from all sources and delivers the first copy of each sequence number to arrive. Duplicate messages with the same sequence number from other sources are dropped instead of being delivered to the application.
This process does require enough receiver bandwidth for every message to arrive at least twice. However, use of features like multiple transport sessions (see Section 2.2) and a choice of filtering locations (see Section 2.5) often drastically reduce the arrival rate of irrelevant messages. Applying such features results in resilient LBM receivers that often use less bandwidth than even non-resilient receivers in competing systems.
LBM detects duplicate messages by using a simple integer hash, as is used for filtering irrelevant messages. See Section 7.4 for details.
LBM Benefits. Zero failover latency. Lower average message delivery latency since there's a latency race in the delivery of every message.
Other messaging systems often provide gateway daemons that encapsulate their reliable multicast inside TCP for transport across a WAN. (See Section 3.3 to learn why LBM does not require gateway daemons.) TCP decides when one gateway is allowed to send to its partner, but messages arrive at the gateway whenever a source decides to send them. The gateway is therefore required to add latency by queuing messages for transmission until TCP is willing to accept them. Queues and latency grow large whenever congestion on the WAN or slowness in the receiving gateway prevents messages from being sent.
29West generally discourages the use of gateway daemons because our reliable multicast protocol is designed for WAN use (see Section 3.3). However, LBM comes with a gateway process for use as required. Our gateway can use unicast UDP across a WAN link, thereby avoiding TCP's congestion control and flow control behavior, which is undesirable for latency-sensitive applications. See our whitepaper for more information on TCP latency.
Our gateway uses the event queue mechanism (see Section 4.3) so that administrators can set limits on the number of messages queued or their latency.
LBM Benefits. When gateways are required, LBM's gateway operation is stable and gateway latency can be easily controlled.
Gateway daemons in other messaging systems sometimes include logic to detect when other gateways are unreachable and to route around the failure. The messaging servers of other systems often include similar logic to route around server connectivity failures. The work of maintaining routing tables adds latency spikes whenever routing paths change.
LBM gateways leave the work of maintaining routing tables to network hardware, which is far more adept and flexible at detecting failures and routing around them with lower latency. We see no benefit in duplicating routing work in the messaging layer which the network layer already handles competently.
LBM Benefits. LBM provides lower latency when messaging paths through the network must change.
Copyright 2007 - 2009 29West, Inc.