# RMQ Scenarios

## Change Events<button aria-hidden="true" class="css-x4slh0" data-testid="anchor-button" type="button"><svg class="_1reo15vq _18m915vq _syaz1r31 _lcxvglyw _s7n4yfq0 _vc881r31 _1bsbpxbi _4t3ipxbi" fill="none" role="presentation" viewbox="0 0 16 16"></svg></button>

A service that needs to publish change events for a domain.

An example of this would be a security directory that receives a change request for a user account, to change its username. This update would need to be propagated to other services that use or cache the user’s username, and to client devices that display it.

In such a case, the security directory can publish the change event to a fanout exchange, and subscribers can deal with it appropriately.

- Caches can invalidate the appropriate record

## RPC Requests<button aria-hidden="true" class="css-x4slh0" data-testid="anchor-button" type="button"><svg class="_1reo15vq _18m915vq _syaz1r31 _lcxvglyw _s7n4yfq0 _vc881r31 _1bsbpxbi _4t3ipxbi" fill="none" role="presentation" viewbox="0 0 16 16"></svg></button>

Cloud services that make requests needing deterministic responses use RPC over RMQ.

An implementation of this has been integration tested in the libraries, and provides an abstraction similar to a local method call.

See this for details: [RabbitMQ Cloud Service RPC Conventions](https://wiki.galaxydump.com/link/503)