Changes for page Asynchronous Routing
Last modified by Danniar Firdausy on 2024/09/04 09:01
From version 37.7
edited by Danniar Firdausy
on 2024/08/21 16:02
on 2024/08/21 16:02
Change comment:
There is no comment for this version
To version 21.1
edited by Erik Bakker
on 2022/08/15 08:06
on 2022/08/15 08:06
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. dfirdausy1 +XWiki.ebakker - Content
-
... ... @@ -1,7 +1,7 @@ 1 1 {{container}}{{container layoutStyle="columns"}}((( 2 -In this microlearning, we will divetotheessentials of asynchronous routing and its importance inmanaging messagedistribution within the five-layer messaging model.We will coverthe key concepts, including how to routemessages efficiently and manage output control.2 +In this microlearning, we will explain the basics of asynchronous routing that plays a vital role in the distribution of messages within the five-layer model of messaging. 3 3 4 - Ifyou have any questionsalong theway, feelfree to reachoutto usat [[academy@emagiz.com>>mailto:academy@emagiz.com]].4 +Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]]. 5 5 6 6 == 1. Prerequisites == 7 7 ... ... @@ -10,16 +10,24 @@ 10 10 == 2. Key concepts == 11 11 12 12 This microlearning centers around asynchronous routing for messaging flows in eMagiz. 13 - *Withasynchronous routing we mean: The process that routes messages that it receives to the correct outbound queue based on some metadata.13 +By asynchronous routing we mean: The process that routes messages that it receives to the correct outbound queue based on some metadata. 14 14 15 +The asynchronous routing has three relevant parts: 16 + 17 +* All asynchronous onramps send their data to the routing 18 +* Based on a decision made within the routing the message is routed to one or more offramp queues 19 +* Each offramp queue will receive data based on the decision unless you add another filter before the messages are sent to the offramp queue 20 + 15 15 == 3. Asynchronous routing == 16 16 17 -Asynchronous routing plays a crucial role in the distribution of messages it receives to one or more offramps. In eMagiz, the asynchronous routing has three relevant parts:23 +Asynchronous routing plays a crucial role in the distribution of messages it receives to one or more offramps. 18 18 19 -* All asynchronous onramps that send data to the routing. 20 -* Based on a decision made within the routing the message is routed to one or more offramp queues. 21 -* Each offramp queue will receive data based on the decision unless you add another filter before the messages are sent to the offramp queue. 25 +The asynchronous routing has three relevant parts: 22 22 27 +* All asynchronous onramps send their data to the routing 28 +* Based on a decision made within the routing the message is routed to one or more offramp queues 29 +* Each offramp queue will receive data based on the decision unless you add another filter before the messages are sent to the offramp queue 30 + 23 23 === 3.1 Make a decision === 24 24 25 25 In asynchronous routing, you can build your decision model on which the routing needs to make the decision. ... ... @@ -27,9 +27,7 @@ 27 27 The best practice for setting up your asynchronous routing process is to use one SpEL expression that determines to which offramp queues a messages needs to be routed. 28 28 The SpEL expression looks as follows: 29 29 30 -{{code language="xml"}} 31 -headers.{technicalnameofproject}\_targetSystem.split(',').![#this.trim()+#root.headers.{technicalnameofproject}_messageType] 32 -{{/code}} 38 +headers.{technicalnameofproject}\_targetSystem.split(',').![#this.trim()+#root.headers.{technicalnameofproject}_messageType] 33 33 34 34 This SpEL expression does the following things: 35 35 ... ... @@ -54,10 +54,16 @@ 54 54 55 55 === 3.2 Control output === 56 56 57 -As the asynchronous routing plays a role in routing messages between all asynchronous flows in the messaging solution you can imagine that making changes does not need to happen lightly. The other aspect is that when multiple projects are being built at the same time the asynchronous routing will house a multitude of changes that need to go to Acceptance or Production at the same time. 63 +As the asynchronous plays a role in routing messages between all asynchronous flows in a 64 +the messaging solution you can imagine that making changes does not need to happen lightly. 65 +The other aspect is that when multiple projects are being built at the same time the asynchronous routing 66 +will house a multitude of changes that need to go to Acceptance or Production at the same time. 58 58 59 -One control mechanism we consider a best practice to guard yourself against those risks is to add a filter before data is placed on the offramp queue. 60 -By doing this consistently you can control when a specific offramp can receive data on any environment. In other words, when a certain system is not ready yet to receive data on Acceptance or Production but is ready on Test you can control this behavior with this solution. 68 +One control mechanism we consider a best practice to guard yourself against those risks is to add a filter 69 +before data is placed on the offramp queue. 70 +By doing this consistently you can control when a specific offramp can receive data on any environment. 71 +In other words, when a certain system is not ready yet to receive data on Acceptance or Production but is ready on Test 72 +you can control this behavior with this solution. 61 61 62 62 Below you see how this will look on flow level. 63 63 ... ... @@ -96,21 +96,25 @@ 96 96 [[image:Main.Images.Microlearning.WebHome@crashcourse-messaging-asynchronous-routing--simple-asynchronous-routing-example.png]] 97 97 98 98 99 -== 4. Keytakeaways==111 +== 4. Assignment == 100 100 113 +Build your asynchronous routing based on the best practice for one of the offramps that are available within your (Academy) project. 114 +This assignment can be completed with the help of your (Academy) project you have created/used in the previous assignment. 115 + 116 +== 5. Key takeaways == 117 + 101 101 * Use one component that decides to route messages to certain channels 102 102 * Control the output with a filter to prevent data to be sent to a queue too early 103 103 * Use the annotations to write down the step by step guide within your asynchronous routing 104 104 105 -== 5. Suggested Additional Readings ==122 +== 6. Suggested Additional Readings == 106 106 107 -If you are interested in this topic and want more information on it please read the help text provided by eMagiz and read the following link:124 +If you are interested in this topic and want more information on it please read the help text provided by eMagiz. 108 108 109 -* [[Store (Menu)>>doc:Main.eMagiz Store.WebHome||target="blank"]] 110 -** [[Accelerators (Navigation)>>doc:Main.eMagiz Store.Accelerators.WebHome||target="blank"]] 111 -*** [[Routing - SpEL (Store Item)>>doc:Main.eMagiz Store.Accelerators.Routing - SpEL.WebHome||target="blank"]] 112 -* [[Intermediate Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.WebHome||target="blank"]] 113 -** [[Data traffic routing (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Data traffic routing.WebHome||target="blank"]] 114 -*** [[Synchronous routing (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Data traffic routing.intermediate-data-traffic-routing-synchronous-routing||target="blank"]] 115 -* [[Asynchronous Routing (Search Results)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=0%2FMain.&l_space_facet=10&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22asynchronous+routing%22||target="blank"]] 126 +== 7. Silent demonstration video == 127 + 128 +This video demonstrates how you could have handled the assignment and gives you some context on what you have just learned. 129 + 130 +{{video attachment="crashcourse-messaging-asynchronous-routing.mp4" reference="Main.Videos.Microlearning.WebHome"/}} 131 + 116 116 )))((({{toc/}}))){{/container}}{{/container}}