Aras Innovator Platform

RabbitMQ Usage Overview

Specific settings and configurations for RabbitMQ are recommended for use with Aras Innovator and are outlined in this document. These settings are based on the current documentation provided by RabbitMQ and may be subject to change at any time by RabbitMQ. Aras is not responsible for RabbitMQ, so any further questions on its use or issues arising from using RabbitMQ should be directed to RabbitMQ.

Aras Innovator is an enterprise application that customers can host in a clustered environment. Deploying Aras Innovator on multiple servers allows the implementation to scale to support more concurrent users and processes. Load balancers uniformly distribute the workload associated with user requests across the configured nodes, allowing for a better end-user experience. However, deploying Aras Innovator across multiple nodes introduces the need to synchronize cached data across the different nodes.

User operations can impact the state of metadata across the system. This information is cached to provide quicker access across requests and improve overall system performance. Changes to cached data on one node mean that the cached data will become stale and out of sync on the other nodes. For the data to be properly updated and consistent, the cached data needs to be invalidated across all nodes – not just the node that handled a specific user request. Failure to invalidate and update the cached data across all nodes will result in inconsistencies across the different nodes, resulting in inconsistent results generated across all nodes.

Metadata syncing across nodes in Aras Innovator is accomplished through server-side cache invalidation. When a cached key-value pair is invalidated on one server, the corresponding cache segment is invalidated on the other server(s).

By default, Aras Innovator utilizes a SQL Server database-based invalidation broker to facilitate cache synchronization. However, this implementation does not work in environments where SQL Server is unavailable. In such scenarios, Aras Innovator can be reconfigured to support an alternative cache invalidation broker implementation to ensure that cached metadata is properly invalidated across all nodes when a change occurs on any of the nodes. Aras Innovator can be configured to work with RabbitMQ to provide these services.

RabbitMQ is a message brokering service that allows applications to implement event-driven processing. Aras Innovator supports a configurable cache invalidation framework that allows a RabbitMQ-based implementation (and potentially other implementations) to replace the default database-based implementation to synchronize the invalidation of caches across each node. The implementation allows certain Aras Innovator caching invalidating events to broadcast when triggered. Each server node would be configured with a listener to receive these broadcast events. The local nodes receiving the event would then apply the same process effectively as the node that originally processed the event. All stale cached metadata would be invalidated across all nodes.

RabbitMQ must be installed separately from Aras Innovator and configured to work with the message broker to provide event-driven invalidation services. The remainder of this document provides the necessary details for setting up RabbitMQ as the invalidation broker for Aras Innovator.

RabbitMQ acts as a messaging service to provide messages between nodes for cache invalidation.

The following steps outline the process of cache invalidation:

  1. A cache invalidating action is performed on Server “A” (e.g., an ItemType item received a modification to its definition and was saved).
  2. Server-side cache is invalidated for Server “A.”
  3. A message containing the Key to be invalidated is added to Rabbit’s Queue.
  4. RabbitMQ disperses messages to all listening servers.
  5. Server “B” invalidates the corresponding cache entry in its own server cache.

RabbitMQ is a third-party stand-alone application that can be used with Aras Innovator to provide an alternate solution for cache invalidation services. It has not been implemented nor supported by Aras, and it is not required to work successfully on Aras Innovator. This document will describe the basic instructions for installing RabbitMQ and configuring it to work with Aras Innovator. It presumes that the standard installation procedure provided by RabbitMQ is sufficient to get RabbitMQ installed and running in a manner that Aras Innovator can readily utilize.

While Aras will attempt to help a customer resolve an issue related to the configuration of RabbitMQ for use with Aras Innovator, Aras Support will not be responsible for general RabbitMQ installation and setup issues that are unrelated to Aras Innovator. This includes but is not limited to environmental issues such as OS-related issues or issues that may result from conflicts with other applications that may be installed on the same system. Customers are advised to use the specific version(s) of software identified in this document and to use server configurations that match as much as possible to those identified in this document. This will help customers minimize potential conflicting issues.

As RabbitMQ is an open-source product, Aras Support can only address issues related to configuring RabbitMQ as described in this document. If your company requires general RabbitMQ support services, please access RabbitMQ Support for additional information.

Aras support for RabbitMQ configuration is restricted to Windows-based deployment of Aras Innovator.