Wiki source code of API Gateway Architecture

Version 15.1 by Erik Bakker on 2023/01/23 10:55

Hide last authors
Erik Bakker 1.1 1 {{container}}{{container layoutStyle="columns"}}(((
Erik Bakker 12.1 2 This microlearning will focus on describing the general architecture of the API Gateway. After this microlearning, the background of the API GW architecture should be clear
Erik Bakker 1.1 3
Erik Bakker 11.1 4 Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]].
Erik Bakker 1.1 5
6 == 1. Prerequisites ==
Erik Bakker 8.1 7 * Intermediate knowledge of the eMagiz platform
8 * Good working experience in the Design phase Architecture and Deploy Architecture
9 * Created several API gateway integrations
Erik Bakker 1.1 10
11 == 2. Key concepts ==
12
Erik Bakker 9.1 13 * Single lane -> Single runtime per types
14 * Double lane -> Two or more runtime per type to handle failover setups
Erik Bakker 1.1 15
Erik Bakker 8.1 16 == 3. Architecture considerations ==
Erik Bakker 1.1 17
Erik Bakker 8.1 18 === 3.1 Architecture components API Gateway ===
Erik Bakker 1.1 19
Erik Bakker 8.1 20 The following picture displays a general architecture of the API Gateway. This picture has been taken from the eMagiz Design Architecture section as that illustrates the below key points.
Erik Bakker 1.1 21
Erik Bakker 8.1 22 [[image:Main.Images.Microlearning.WebHome@advanced-solution-architecture-apigw-architecture-1.png]]
Erik Bakker 1.1 23
Erik Bakker 8.1 24 Key notes
Erik Bakker 13.1 25 * Gateway runtime
Erik Bakker 15.1 26 ** The Gateway has a separate runtime where the associated gateway flows are deployed in. The exit gates and all entry flow are the typical flow types present in this runtime, next to the usual infrastructure flow
Erik Bakker 14.1 27 * Location runtime
Erik Bakker 15.1 28 ** The Gateway runtime is located in a Cloud machine, and is specifically put on the Connector machine. The Connector machine has the ability to allow incoming data (secured) traffic from outside the Virtual Private Cloud that each client has. The Core machine does not have this option due to security reasons. The eMagiz Cloud handles the proper and secure routing to the API gateway.
Erik Bakker 13.1 29 * Gateway only runtime
Erik Bakker 15.1 30 ** These are system that act as application user of 1 or more operations made available in the API Gateway. In case the system is only connected in the Design phase as such an application user, than that system only acts as input for User Management. The system doesn't need to be deployed as a runtime on the Connector machine, and should therefore be placed on an excluded machine. In the picture above, Exact online is such a system.
Erik Bakker 1.1 31
Erik Bakker 8.1 32 === 3.2 Single lane Cloud setup ===
Erik Bakker 1.1 33
Erik Bakker 8.1 34 Single lane setup in eMagiz means that all runtimes are provided once in the architecture diagram * there is no failover or clustered approach for the runtimes. For the API Gateway, this means that you have the following machines available. In this example, you have the messaging patterns components as well with the objective to see such cases as well.
Erik Bakker 1.1 35
Erik Bakker 10.1 36 * Core 01 -> holds the JMS Server and the messaging process container
37 * Connnector 01 -> holds the API Gateway container and the messaging runtimes
Erik Bakker 1.1 38
Erik Bakker 8.1 39 [[image:Main.Images.Microlearning.WebHome@advanced-solution-architecture-apigw-architecture-2.png]]
Erik Bakker 2.1 40
Erik Bakker 8.1 41 === 3.3 Double lane Cloud setup ===
Erik Bakker 2.1 42
Erik Bakker 8.1 43 Double lane setup in eMagiz means that all runtimes are provided at least twice in the architecture diagram * there is a failover for the JMS runtimes and gateway containers. For the API Gateway, this means that you have the following machines available. In this case you need to make sure that the flows are duplicated properly across the containers in Deploy * Containers. By default eMagiz will spread all flows over both gateway containers.
Erik Bakker 2.1 44
Erik Bakker 10.1 45 * Core 01 -> holds the JMS Server and the 1st messaging process container
46 * Core 02 -> holds the backup JMS Server and the 2nd messaging process container
47 * Connnector 01 -> holds the 1st API Gateway container
48 * Connnector 02 -> holds the 2nd API Gateway container
Erik Bakker 2.1 49
Erik Bakker 8.1 50 The choice to create a double lane API gateway is to be done where there is a requirement for very high performance around response times and throughput. Please contact eMagiz to discuss such options.
Erik Bakker 2.1 51
Erik Bakker 8.1 52 [[image:Main.Images.Microlearning.WebHome@advanced-solution-architecture-apigw-architecture-3.png]]
Erik Bakker 2.1 53
Erik Bakker 8.1 54 === 3.4 Hybrid Cloud setup ===
55
Erik Bakker 11.1 56 In the [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.API Management.advanced-api-management-running-part-of-your-api-gateway-solution-on-premise.WebHome||target="blank"]] you can find the reasons and configuration for running the exit gates in on-premises runtimes. A view of such a architecture is displayed here:
Erik Bakker 8.1 57
58 [[image:Main.Images.Microlearning.WebHome@advanced-solution-architecture-apigw-architecture-4.png]]
59
60 === 3.5 Memory ===
61
Erik Bakker 11.1 62 For now the memory requirements for API Gateway are the same as for Messaging flows. Please refer to the [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Expert Level.Solution Architecture.expert-solution-architecture-determining-needed-memory.WebHome||target="blank"]].
Erik Bakker 8.1 63
Erik Bakker 1.1 64 == 4. Assignment ==
65
Erik Bakker 11.1 66 There is no specific assignment for now. The correct use of the Design architecture is explained in this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-design-understanding-design-architecture-basic.WebHome||target="blank"]].
Erik Bakker 1.1 67
68 == 5. Key takeaways ==
69
Erik Bakker 14.1 70 * API Gateways can be part of a mixed landscape of Messaging, Event Streaming and API Gateways
71 * A single lane setup is usually sufficient for most cases
72 * Hybrid setups are possbible but please be sure the ask the right questions before implementing such
Erik Bakker 1.1 73
74 == 6. Suggested Additional Readings ==
75
Erik Bakker 8.1 76 There are no suggested additional readings on this topic
Erik Bakker 1.1 77
78 == 7. Silent demonstration video ==
79
Erik Bakker 8.1 80 There is no demonstration video of this functionality.
Erik Bakker 1.1 81
82 )))((({{toc/}}))){{/container}}{{/container}}