JSF 2 provides queue mechanism out-of the box already. And RichFaces queue just provides some additional customizations to improve the queue usability and allow to tune your performance while using Ajax as much as possible.

The only big difference which the developers who used queue in 3.3.x should remember: as JSF 2 already provides single queue and not allows to have more than one queue instance(currently) you can't really fire concurrent requests anymore. So the queue in RF now not actually defines logical queue but just a component for defining queueing options.

Here you could explore additional optimization parameters of the queue and learn how they influence Ajax requests. This example is a good start to learn about Ajax requests flood protection.

Pay attention to next point in the example:

- Setting request delay to greater value reduces the greatly requests count on fast typing. (More similar requests are combined in the result)

Also pay your attention to the queue definition. Such definition (inside some form without a name) means that the queue options becomes global for the form.

Queue could be defined as

- Default for view. In this case - the parameters will be used for all the Ajax requests in view(if not redefined). In order to define such queue - just place a4j:queu outside of any forms without defining name
- Default for form. Similar to view-scoped but should be defiend in some form without defining name
- Referenced from ajax behaviors/components. Queue should be defined with name and referenced using attachQueue tag(see corresponding sample).