Version 4.1 by Erik Bakker on 2022/06/13 10:13

Show last authors
1 {{container}}{{container layoutStyle="columns"}}(((
2 In this microlearning we'll take a moment to discuss several considerations for making the right choice between the two patterns
3
4 Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]].
5
6 * Last update: December 2021
7 * Required reading time: 10 minutes
8
9 == 1. Prerequisites ==
10
11 * Advanced knowledge of the eMagiz platform
12 * Completed the relevant microlearnings Key Concepts Event Streaming (level crash course to intermediate)
13 * Completed the relevant microlearnings Key Concepts Messaging (level crash course to intermediate)
14
15 == 2. Key concepts ==
16
17 Please refer to the following Fundamentals to learn the key concepts of both patterns
18
19 * [[eMagiz Messaging>>doc:Main.eMagiz Academy.Fundamentals.fundamental-event-streaming-introduction.WebHome||target="blank"]]
20 * [[eMagiz Messaging>>doc:Main.eMagiz Academy.Fundamentals.fundamental-messaging-introduction.WebHome||target="blank"]]
21
22 == 3. Considerations for selecting Messaging or Event Streaming ==
23
24 The following sections are helpful to understand what things to consider in selecting the right pattern.
25
26 * **Asynchronous**
27 * Both patterns are asynchronous in nature. In case a synchronous message is the right choice, pelase refer to the relevant microlearning that compares messaging and API gateway
28 * **Data**
29 * Event Streaming solutions are typically used in large volumes of data whereby each message is relatively small. A typical example is an IoT data stream, but you can use Event Streaming for order, confirmations or other data collections. There is a maximum value for each message on a topic of 1Mb
30 * Messaging can handle larger messages although 1 Mb message are the average that eMagiz considers. In case larger messages exist, Messaging would be a better option
31 * **Online vs. offline**
32 * For Messaging, the delivering and receiving system need to be online with high availability ratio's in order to process the messages
33 * For Event Streaming, producers and consumers can choose their own downtime and for small intervals where messages are not produces or consumed
34 * **Contract & communication**
35 * Messaging required a fixed contract between the message definitions that are exchanged. A change of definition would result in validation issues and therefore more communication is required
36 * Event Streaming has a more loosly character in a sense that the producer defines the message that is send and publishes it to the consumer. COnsumer can then consume the message and decide how to process the message
37 * **Technical disqualifiers**
38 * Use Event Streaming requires the produces and the consumer to have the technical capability to produce and consume messages on a Kafka topic.
39 * Messaging allows to receive and send messages via many more protocols such as REST, SOAP, File pickup, etc. Please note that eMagiz Messaging can also produce and consume messages from and to topics which can help to support the use of event streaming
40 * **Data Storage**
41 * In the Messaging pattern, no data is stored and the data is in full transit
42 * In the Event Streaming pattern, data is persisted for a short time in a storage location. The data is still considered to be in transit, but making choice where data is persisted too often with minimal change to the message could impact data storage. eMagiz has licensed limits for data storage in Event Streaming.
43
44 == 4. Assignment ==
45
46 There is no assignment for now in this microlearning
47
48 == 5. Key takeaways ==
49
50 * There are a set of considerations to make decisions for event streaming vs. messaging
51 * Make sure to read the eMagiz Fundamentals properly before taking this section into account in your project
52
53 == 6. Suggested Additional Readings ==
54
55 Take a moment to read the following [[Usecase>>doc:Main.eMagiz Academy.Use Cases.Pattern Determination.WebHome||target="blank"]]
56
57 == 7. Silent demonstration video ==
58
59 As this is a more theoretical microlearning, we have no video that accompanies this microlearning.)))((({{toc/}}))){{/container}}{{/container}}