From 92f1c9e688006a11bcf956b73765b7ad4a8b7a20 Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Thu, 21 Nov 2024 13:01:50 -0800 Subject: [PATCH 1/6] W-17292458 MQ FIFO Exchanges Beta --- modules/ROOT/pages/index.adoc | 2 +- modules/ROOT/pages/mq-configure.adoc | 2 +- modules/ROOT/pages/mq-exchanges.adoc | 2 +- modules/ROOT/pages/mq-glossary.adoc | 8 +++++++- modules/ROOT/pages/mq-queues.adoc | 4 ++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 0247159c..016c3b1d 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -43,7 +43,7 @@ Anypoint MQ includes these features: Queues and Message Exchanges:: Send messages to queues and pull messages from queues. -Use a message exchange to send messages to multiple standard queues simultaneously or +Use a message exchange to send messages to multiple standard or FIFO queues simultaneously or route messages to specific queues by using intelligent message routing rules. + For information, see: diff --git a/modules/ROOT/pages/mq-configure.adoc b/modules/ROOT/pages/mq-configure.adoc index 417cb91c..5e96810d 100644 --- a/modules/ROOT/pages/mq-configure.adoc +++ b/modules/ROOT/pages/mq-configure.adoc @@ -12,7 +12,7 @@ Create queues, FIFO queues, and dead-letter queues in Anypoint Platform. Send, receive, and purge messages from queues. * xref:mq-exchanges.adoc[] + -Send messages to multiple standard xref:mq-queues.adoc[queues] simultaneously by binding those queues to +Send messages to multiple standard or FIFO xref:mq-queues.adoc[queues] simultaneously by binding those queues to a message exchange. + Route messages to specific queues that are bound to the message exchange diff --git a/modules/ROOT/pages/mq-exchanges.adoc b/modules/ROOT/pages/mq-exchanges.adoc index 256d7758..4055b376 100644 --- a/modules/ROOT/pages/mq-exchanges.adoc +++ b/modules/ROOT/pages/mq-exchanges.adoc @@ -1,6 +1,6 @@ = Sending Messages to Multiple Queues Using Message Exchanges -You can send messages to multiple standard +You can send messages to multiple standard or FIFO xref:mq-queues.adoc[queues] simultaneously by binding those queues to a _message exchange_. diff --git a/modules/ROOT/pages/mq-glossary.adoc b/modules/ROOT/pages/mq-glossary.adoc index 4ff3d7b9..e2520309 100644 --- a/modules/ROOT/pages/mq-glossary.adoc +++ b/modules/ROOT/pages/mq-glossary.adoc @@ -12,7 +12,7 @@ Operations that specify the following: For information, see xref:anypoint-mq-connector::anypoint-mq-ack.adoc[ACK and NACK Operations]. Binding:: + -A method for specifying a set of standard queues that form a message exchange, enabling apps to send messages to multiple queues. +A method for specifying a set of standard or FIFO queues that form a message exchange, enabling apps to send messages to multiple queues. + When you specify which message queues are bound to a message exchange, Anypoint MQ creates and manages the bindings for you. + @@ -95,6 +95,11 @@ include::partial$mq-failover.adoc[tag=fallbackQnotConfig] + For information, see xref:mq-failover.adoc[]. +[[fifo-exchange]] +FIFO Exchange:: +A <> that binds multiple <>, +enabling you to send messages to multiple FIFO queues. + [[fifo-queues]] FIFO Queue:: A queue that processes messages first-in, first-out (FIFO), ensuring message ordering for applications in which the order of messages must be strictly preserved and enforced. @@ -124,6 +129,7 @@ An identifier that allows only a single app to read a queue. Anypoint MQ provides the lock when an app acknowledges a message from a queue. Message:: Serializable xref:mule-runtime::about-mule-message.adoc[Mule Message] content that applications send and receive so that they can communicate with each other. +[[message-exchange]] Message Exchange:: A pub/sub message source with multiple outputs. Applications register to subscribe to messages that the message exchange publishes. + diff --git a/modules/ROOT/pages/mq-queues.adoc b/modules/ROOT/pages/mq-queues.adoc index 3c35be40..cdf3c698 100644 --- a/modules/ROOT/pages/mq-queues.adoc +++ b/modules/ROOT/pages/mq-queues.adoc @@ -40,7 +40,7 @@ image::mq-filters.png["Destinations page showing filter options for message queu Before using Anypoint MQ, you must create an environment and give users Anypoint MQ access permissions. See xref:mq-access-management.adoc[]. - +[[create-queue]] == Create a Queue To create a standard queue or FIFO queue: @@ -340,7 +340,7 @@ include::partial$mq-faq.adoc[tag=failedTPS] * In some configurations when using the IMMEDIATE acknowledgment mode in the Subscriber operation, FIFO queues don't process messages in order. * Before using `prefetch` mode with FIFO queues, see xref:anypoint-mq-connector::anypoint-mq-listener.adoc#fifo-and-prefetch[FIFO Queues and Prefetch Mode]. -To create a FIFO queue, see <>. To determine if a queue is FIFO or standard (non-FIFO), view its details. +To create a FIFO queue, see <>. To determine if a queue is FIFO or standard (non-FIFO), view its details. For the regions in which Anypoint MQ and FIFO queues are available, see the xref:mq-faq#regions[Anypoint MQ FAQ]. From 70ea8cd0627b0d777f8ebcc1fe2a05d8d6110967 Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Thu, 21 Nov 2024 13:21:42 -0800 Subject: [PATCH 2/6] create FIFO exchange --- modules/ROOT/pages/mq-apis.adoc | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/mq-apis.adoc b/modules/ROOT/pages/mq-apis.adoc index acf95edf..0133a514 100644 --- a/modules/ROOT/pages/mq-apis.adoc +++ b/modules/ROOT/pages/mq-apis.adoc @@ -266,6 +266,7 @@ the API throttles your requests to 50 transactions per minute (TPM). These examples use the Anypoint MQ Admin API to create queues and message routing rules from the command line using `curl`: * <> +* <> * <> * <> * <> @@ -273,7 +274,7 @@ These examples use the Anypoint MQ Admin API to create queues and message routin [[fifo-queue-api]] === Create a FIFO Queue -You can create a FIFO queue using the Anypoint MQ Admin API by including the `"fifo": true` field. +You can create a FIFO queue using the Anypoint MQ Admin API by including `"fifo": true` in the body. [NOTE] The organization from which you use the Administration portal must have an Anypoint MQ FIFO entitlement. @@ -312,6 +313,35 @@ The response includes output such as: }, ---- +[[fifo-exchange-api]] +=== Create a FIFO Exchange + +You can create a FIFO exchange using the Anypoint MQ Admin API by including `"fifo": true` in the body. + +[NOTE] +The organization from which you use the Administration portal must have an Anypoint MQ FIFO entitlement. +See xref:mq-faq.adoc[Anypoint MQ FAQ] for the regions where Anypoint MQ is available. + +Use a `curl` command like the following to create a FIFO exchange: + +[source,bash,linenums] +---- +curl -X PUT "https://anypoint.mulesoft.com/mq/admin/api/v1/organizations//environments//regions//destinations/exchanges/" \ +--header 'Content-Type: application/json' \ +--header 'Authorization: bearer ' \ +--data-raw '{ + "encrypted" : false, + "fifo" : true +}' +---- + +The response includes output such as: + +[source,json,linenums] +---- + +---- + [[routing-rules-api]] === Create or Change Message Routing Rules From fe60f68d160e3b25578314bb30100cfb2b101652 Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Tue, 3 Dec 2024 11:32:27 -0800 Subject: [PATCH 3/6] in case we don't have example output --- modules/ROOT/pages/mq-apis.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/mq-apis.adoc b/modules/ROOT/pages/mq-apis.adoc index 0133a514..4ff4bb03 100644 --- a/modules/ROOT/pages/mq-apis.adoc +++ b/modules/ROOT/pages/mq-apis.adoc @@ -335,13 +335,14 @@ curl -X PUT "https://anypoint.mulesoft.com/mq/admin/api/v1/organizations/ ---- - +//// [[routing-rules-api]] === Create or Change Message Routing Rules From d2164c4d19403aa72d188eb9272a53887b54b69d Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Mon, 16 Dec 2024 17:34:41 -0800 Subject: [PATCH 4/6] Update modules/ROOT/pages/mq-apis.adoc --- modules/ROOT/pages/mq-apis.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/mq-apis.adoc b/modules/ROOT/pages/mq-apis.adoc index 4ff4bb03..47247e29 100644 --- a/modules/ROOT/pages/mq-apis.adoc +++ b/modules/ROOT/pages/mq-apis.adoc @@ -322,7 +322,7 @@ You can create a FIFO exchange using the Anypoint MQ Admin API by including `"fi The organization from which you use the Administration portal must have an Anypoint MQ FIFO entitlement. See xref:mq-faq.adoc[Anypoint MQ FAQ] for the regions where Anypoint MQ is available. -Use a `curl` command like the following to create a FIFO exchange: +Use a `curl` command like this to create a FIFO exchange: [source,bash,linenums] ---- From e800ce2b356c3e650752583a583d34c60ff87d1b Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Tue, 17 Dec 2024 16:09:33 -0800 Subject: [PATCH 5/6] Copyedit with writer --- modules/ROOT/pages/mq-apis.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/mq-apis.adoc b/modules/ROOT/pages/mq-apis.adoc index 47247e29..2c432aed 100644 --- a/modules/ROOT/pages/mq-apis.adoc +++ b/modules/ROOT/pages/mq-apis.adoc @@ -12,7 +12,7 @@ Anypoint MQ APIs are available in the https://anypoint.mulesoft.com/exchange/por == Workflow for an API -This example illustrates the workflow for accessing the Anypoint MQ Broker API: +This example shows the workflow for accessing the Anypoint MQ Broker API: image::mq-api-workflow.png["Workflow of the Anypoint MQ Broker API"] From b8405541844f3f65964bc5317c2c744cd1217faf Mon Sep 17 00:00:00 2001 From: Hanna Nelson Date: Mon, 13 Jan 2025 17:46:45 -0800 Subject: [PATCH 6/6] W-17543263 MQ FIFO Exchanges UI Final --- modules/ROOT/pages/mq-exchanges.adoc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/mq-exchanges.adoc b/modules/ROOT/pages/mq-exchanges.adoc index d7c9b918..8817ff3c 100644 --- a/modules/ROOT/pages/mq-exchanges.adoc +++ b/modules/ROOT/pages/mq-exchanges.adoc @@ -35,20 +35,25 @@ To create a message exchange: . Click *Destinations*. . Click the *Add* icon to display the menu: + +// update screenshot image::mq-blue-create.png["Add icon in the Anypoint MQ Destinations page"] -. Select *Exchange*. +. Select *Exchange* or *FIFO Exchange*. + For *Queue* or *FIFO Queue*, see xref:mq-queues.adoc[]. -. In the *Create Exchange* page, name the message exchange. +. Name the message exchange in the *Create Exchange* or *Create FIFO Exchange* page. + Message exchange names can contain up to 127 alphanumeric (a-z, A-Z, 0-9) and punctuation (. -) characters. They can't contain spaces or other characters. . Click the checkboxes to bind queues to this message exchange: + +// This screenshot is OK image::mq-exchange-bind-queues.png["Checkboxes to bind queues to a message exchange in the Create Exchange page"] ++ +NOTE: You can bind only standard queues to an exchange and only FIFO queues to a FIFO exchange. . Click *Save Changes*. . In the *Destinations* page, click the message exchange type for the new exchange to display the bound queues in the details pane: + +// update with FIFO Exchange in the left; details is OK image::mq-exchange-details-pane.png["Destinations page showing the message exchange type and the bound queues in the details pane"] @@ -66,6 +71,8 @@ To bind a queue to a message exchange: + image::mq-bind-queue-to-exchange2.png["Exchange Settings page showing checkboxes for multiple select, and Unbind and Bind buttons"] + +NOTE: The page displays only standard queues for a message exchange and only FIFO queues for a FIFO exchange. ++ . In the settings page, click *Bind* or *Unbind* for each single queue you want to bind to or unbind from the message exchange. + To select multiple queues to bind to the exchange, select the checkboxes and click the *Bind Selected Queues* button that appears: