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.