Last modified by Erik Bakker on 2024/09/03 08:20

Hide last authors
Erik Bakker 2.1 1 {{container}}{{container layoutStyle="columns"}}(((
Carlijn Kokkeler 16.1 2 In this guide, we’ll explore key considerations for choosing between eMagiz API Gateway and eMagiz Messaging. Both patterns offer synchronous data handling, but they differ in aspects such as error management, contract requirements, and user management. We'll review these differences to help you decide which pattern best fits your integration needs.
3
Erik Bakker 2.1 4 Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]].
eMagiz 1.1 5
6 == 1. Prerequisites ==
7
8 * Advanced knowledge of the eMagiz platform
9 * Completed the relevant microlearnings Key Concepts API Gateway (level crash course to intermediate)
10 * Completed the relevant microlearnings Key Concepts Messaging (level crash course to intermediate)
11
12 == 2. Key concepts ==
13
14 Please refer to the following Fundamentals to learn the key concepts of both patterns
15
Erik Bakker 7.1 16 * [[eMagiz API Gateway>>doc:Main.eMagiz Academy.Fundamentals.fundamental-api-gateway-introduction||target="blank"]]
17 * [[eMagiz Messaging>>doc:Main.eMagiz Academy.Fundamentals.fundamental-messaging-introduction||target="blank"]]
eMagiz 1.1 18
Erik Bakker 4.1 19 == 3. Considerations for API Gateway or Messaging ==
eMagiz 1.1 20
21 The following sections are helpful to understand what things to consider in selecting the right pattern.
22
23 * **Synchronous**
Erik Bakker 3.1 24 ** Both patterns in this discussion are synchronous in nature. In case a asynchronous message is the right choice, pelase refer to the relevant microlearning that compares Messaging and Event Streaming
eMagiz 1.1 25 * **Data**
Erik Bakker 3.1 26 ** Both patterns can handle similar type data - usually record based
eMagiz 1.1 27 * **Online vs. offline**
Erik Bakker 3.1 28 ** For Messaging, the delivering and receiving system need to be online with high availability ratio's in order to process the messages. The same is true for a backend API provider which needs to be online to provide or consume data from API operations
eMagiz 1.1 29
30 * **Error handling**
Erik Bakker 3.1 31 ** In the case of an API Gateway, the requesting application needs to be handle the error messages that are returned by the API gateway in case there are any. The API Gateway provides the errors from the backend API directly back to the requestor who can then decide how to process the request.
32 ** For Messagaging, the errors that are generated are pushed inside the general error process of eMagiz and displayed in the Error Dashboard in the Manage phase. However, the requestor also gets the error messages back from the Messaging system in order to handle these properly
eMagiz 1.1 33 * **Contract & communication**
Erik Bakker 3.1 34 ** 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
35 ** For an API Gateway solution, the contract is published via the API Gateway outwards. The basic idea is that the data definition is fixed and standardized, and that requesting application will adapt their request to this definition. In that sense the API Gateway offers standardization in the landscape
eMagiz 1.1 36 * **Technical disqualifiers**
Bouke Reitsma 8.1 37 ** For an API Gateway, the requestor needs to be able to call a REST based webservice using a supported messaging format
Erik Bakker 3.1 38 ** Messaging allows other web services such as SOAP, but can also handle XML for instance
eMagiz 1.1 39 * **Centralized User Management**
Erik Bakker 3.1 40 ** API gateway offers a easy to configure user management capability to protect operations. Users and roles can be designed in the Design phase, and various authentication methods are allowed such as OAuth2.0 and API Keys. eMagiz offers easy to use configurations for that
41 ** For Messaging, no such user management options exit and all needs to be created inside the flows that handle the requests & replies.
eMagiz 1.1 42
Danniar Firdausy 9.1 43 == 4. Key takeaways ==
eMagiz 1.1 44
45 * There are a set of considerations to make decisions for API gateway vs. messaging
46 * Make sure to read the eMagiz Fundamentals properly before taking this section into account in your project
47
Danniar Firdausy 10.1 48 == 5. Suggested Additional Readings ==
Erik Bakker 17.1 49
50 * [[Fundamentals (Navigation)>>doc:Main.eMagiz Academy.Fundamentals.WebHome||target="blank"]]
51 ** [[eMagiz API Gateway (Explanation)>>doc:Main.eMagiz Academy.Fundamentals.fundamental-api-gateway-introduction||target="blank"]]
52 ** [[eMagiz Messaging>>doc:Main.eMagiz Academy.Fundamentals.fundamental-messaging-introduction||target="blank"]]
Danniar Firdausy 12.1 53 * [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]]
Danniar Firdausy 14.1 54 ** [[Crash Course Messaging (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.WebHome||target="blank"]]
55 *** [[Introduction (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.crashcourse-messaging-introduction||target="blank"]]
Danniar Firdausy 12.1 56 ** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]]
Danniar Firdausy 14.1 57 *** [[Introduction (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-introduction||target="blank"]]
Erik Bakker 18.1 58 * [[API Gateway (Search Result)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=0%2FMain.&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22api+gateway%22||target="blank"]]
59 * [[Messaging (Search Result)>>url:https://docs.emagiz.com/bin/view/Main/Search?highlight=true&r=1&sortOrder=desc&f_space_facet=0%2FMain.&sort=score&text=%22messaging%22&f_type=DOCUMENT&facet=true&f_locale=en&f_locale=&f_locale=en||target="blank"]]
Erik Bakker 17.1 60
Danniar Firdausy 9.1 61 )))((({{toc/}}))){{/container}}{{/container}}