Version 1.1 by eMagiz on 2022/05/05 16:14

Hide last authors
eMagiz 1.1 1 {{html wiki="true"}}
2 <div class="ez-academy">
3 <div class="ez-academy_body">
4
5 <div class="doc">
6
7
8
9 = Considerations for Event Streaming or Messaging =
10
11 In this microlearning we'll take a moment to discuss several considerations for making the right choice between the two patterns
12
13 Should you have any questions, please get in touch with academy@emagiz.com.
14
15 * Last update: December 2021
16 * Required reading time: 10 minutes
17
18 == 1. Prerequisites ==
19
20 * Advanced knowledge of the eMagiz platform
21 * Completed the relevant microlearnings Key Concepts Event Streaming (level crash course to intermediate)
22 * Completed the relevant microlearnings Key Concepts Messaging (level crash course to intermediate)
23
24 == 2. Key concepts ==
25
26 Please refer to the following Fundamentals to learn the key concepts of both patterns
27
28 * [eMagiz Event Streaming](../../docs/fundamental/fundamental-event-streaming-introduction)
29 * [eMagiz Messaging](../../docs/fundamental/fundamental-event-streaming-introduction)
30
31
32
33 == 3. Considerations for selecting Messaging or Event Streaming ==
34
35 The following sections are helpful to understand what things to consider in selecting the right pattern.
36
37 * **Asynchronous**
38 * 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
39 * **Data**
40 * 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
41 * 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
42 * **Online vs. offline**
43 * For Messaging, the delivering and receiving system need to be online with high availability ratio's in order to process the messages
44 * For Event Streaming, producers and consumers can choose their own downtime and for small intervals where messages are not produces or consumed
45 * **Contract & communication**
46 * 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
47 * 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
48 * **Technical disqualifiers**
49 * Use Event Streaming requires the produces and the consumer to have the technical capability to produce and consume messages on a Kafka topic.
50 * 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
51 * **Data Storage**
52 * In the Messaging pattern, no data is stored and the data is in full transit
53 * 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.
54
55 ===== Practice =====
56
57 == 4. Assignment ==
58
59 There is no assignment for now in this microlearning
60
61 == 5. Key takeaways ==
62
63 * There are a set of considerations to make decisions for event streaming vs. messaging
64 * Make sure to read the eMagiz Fundamentals properly before taking this section into account in your project
65
66
67
68 == 6. Suggested Additional Readings ==
69
70 Take a moment to read the following link https://emagiz.github.io/docs/usecase/index_academy_usecase_pattern_discovery
71
72 == 7. Silent demonstration video ==
73
74 As this is a more theoretical microlearning, we have no video that accompanies this microlearning.
75
76 </div>
77 </main>
78 </div>
79 </div>
80
81 {{/html}}