Slide 1

Slide 1 text

Reactive & Distributed Modern Application Architectures

Slide 2

Slide 2 text

Orkhan Gasimov Digital Transformation Architect @ GlobalLogic 15 years of software engineering; training & mentorship; author of trainings about: Microservices; Spring Cloud; Akka; 2 Speaker

Slide 3

Slide 3 text

Backstage 3 Agenda

Slide 4

Slide 4 text

4 Some silly slide

Slide 5

Slide 5 text

Evolution Past

Slide 6

Slide 6 text

6 App Server Evolution Monolith

Slide 7

Slide 7 text

7 App Server Module Module Module Module Evolution Monolith

Slide 8

Slide 8 text

8 Evolution App Server 1 Module Module Module Module App Server N Module Module Module Module Monolith

Slide 9

Slide 9 text

9 Evolution App Server 1 Module Module Module Module App Server N Module Module Module Module Admin Server Deployment & Configuration Monolith

Slide 10

Slide 10 text

10 Evolution Module Module Module Module Module Module Module Module Admin Server Deployment & Configuration Monolith

Slide 11

Slide 11 text

11 Evolution Admin Server Deployment & Configuration App App App App App App App App Monolith

Slide 12

Slide 12 text

12 Evolution App App App App App App App App Discovery & Configuration Monolith Microservices

Slide 13

Slide 13 text

Microservices Architecture

Slide 14

Slide 14 text

14 Monolith Sales Warehouse Accounting Discounts Client

Slide 15

Slide 15 text

15 Service-Oriented Sales Warehouse Accounting Discounts Client

Slide 16

Slide 16 text

Sales Sales 16 Scalability Sales Warehouse Accounting Discounts Client

Slide 17

Slide 17 text

17 API Gateway Sales Sales Sales Warehouse Accounting Discounts Client API Gateway

Slide 18

Slide 18 text

18 Service Discovery Sales Sales Sales Warehouse Accounting Discounts Client API Gateway Service Registry

Slide 19

Slide 19 text

Users Accounting Warehouse 19 Dynamic Coordination Sales Sales Warehouse Accounting Discounts Client API Gateway Service Registry

Slide 20

Slide 20 text

20 Cascading Calls Sales Warehouse Accounting Discounts

Slide 21

Slide 21 text

21 Cascading Calls Sales Warehouse Discounts Accounting

Slide 22

Slide 22 text

22 Circuit Breaker Sales Warehouse Discounts Accounting CB Fallback

Slide 23

Slide 23 text

23 Circuit Breaker Sales Warehouse Discounts Accounting CB CB CB

Slide 24

Slide 24 text

Users Accounting Warehouse 24 Microservices Sales Discounts Sales Warehouse Accounting Client API Gateway Service Registry CB CB CB CB

Slide 25

Slide 25 text

25 Evolution App App App App App App App App Discovery & Configuration Monolith Microservices Discounts Sales Warehouse Accounting

Slide 26

Slide 26 text

26 Evolution App App App App App App App App App App App App App App App App App App App App Discovery & Configuration Monolith Microservices

Slide 27

Slide 27 text

27 Evolution App App App App App App App App App App App App App App App App App App App App Server Discovery & Configuration Monolith Microservices

Slide 28

Slide 28 text

28 Evolution App App App App App App App App App App App App App App App App App App App App Server Modules Discovery & Configuration Monolith Microservices

Slide 29

Slide 29 text

29 Evolution App App App App App App App App App App App App App App App App App App App App Server Modules Fn Discovery & Configuration Monolith Microservices

Slide 30

Slide 30 text

30 Evolution App App App App App App App App App App App App App App App App App App App App Server Modules Fn ? Discovery & Configuration Monolith Microservices

Slide 31

Slide 31 text

31 Evolution App App App App App App App App App App App App App App App App App App App App Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Server Modules Fn ? Discovery & Configuration Monolith Microservices

Slide 32

Slide 32 text

32 Evolution App App App App App App App App App App App App App App App App App App App App Server Modules ? Server Modules ? Server Modules ? Server Modules ? Server Modules ? Server Modules ? Server Modules ? Server Modules ? Discovery & Configuration Fn Fn Fn Fn Fn Fn Fn Fn Monolith Microservices

Slide 33

Slide 33 text

Data Microservices Concept

Slide 34

Slide 34 text

34 Data Oriented Processor

Slide 35

Slide 35 text

35 Data Oriented Source Processor

Slide 36

Slide 36 text

36 Data Oriented Source Sink Processor

Slide 37

Slide 37 text

37 CQRS + Event Sourcing Client API Gateway

Slide 38

Slide 38 text

38 CQRS + Event Sourcing Client API Gateway Command Query

Slide 39

Slide 39 text

39 CQRS + Event Sourcing Query Command Client API Gateway Command Query

Slide 40

Slide 40 text

40 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query

Slide 41

Slide 41 text

41 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query DB DB

Slide 42

Slide 42 text

42 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query DB DB Event Store

Slide 43

Slide 43 text

43 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query DB DB Event Store Event Handler

Slide 44

Slide 44 text

44 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query DB Event Store Event Handler DB Fn Fn Fn

Slide 45

Slide 45 text

45 Pipelines Fn Fn Fn

Slide 46

Slide 46 text

46 CQRS + Event Sourcing Query Command Client API Gateway Service Registry Command Query DB Event Store Event Handler DB Fn Fn Fn

Slide 47

Slide 47 text

Reactor Pattern

Slide 48

Slide 48 text

48 Event Loop Event Loop

Slide 49

Slide 49 text

49 Workers Worker Worker Worker delegate long running jobs & IO callback Event Loop

Slide 50

Slide 50 text

50 Multi-Reactor Worker Worker Worker delegate long running jobs & IO callback Event Bus

Slide 51

Slide 51 text

51 Event Handlers Worker Worker Worker delegate long running jobs & IO callback Fn Fn Fn Fn Event Bus

Slide 52

Slide 52 text

52 Basic Architecture Worker Worker Worker delegate long running jobs & IO callback Fn Client Client Client Fn Fn Fn request response Event Bus

Slide 53

Slide 53 text

53 Monolith Evolution App App App App App App App App Discovery & Configuration Microservices W o r k e r W o r k e r W o r k e r delegate long running jobs & IO callback F n C l i e n t C l i e n t C l i e n t F n F n F n request response E v e n t B u s

Slide 54

Slide 54 text

54 Evolution App App App App App App App App Discovery & Configuration Monolith Reactive & Distributed Microservices

Slide 55

Slide 55 text

55 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Monolith Reactive & Distributed Microservices

Slide 56

Slide 56 text

56 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Distributed Platform Monolith Reactive & Distributed Microservices

Slide 57

Slide 57 text

57 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Distributed Platform Monolith Reactive & Distributed Microservices

Slide 58

Slide 58 text

58 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Distributed Platform Monolith Reactive & Distributed Microservices

Slide 59

Slide 59 text

59 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn Distributed Platform Monolith Reactive & Distributed Microservices

Slide 60

Slide 60 text

60 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? Distributed Platform Monolith Reactive & Distributed Microservices

Slide 61

Slide 61 text

61 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? Distributed Platform Monolith Reactive & Distributed Microservices

Slide 62

Slide 62 text

62 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? HTTP Distributed Platform Monolith Reactive & Distributed Microservices

Slide 63

Slide 63 text

63 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 64

Slide 64 text

64 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Event Bus Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 65

Slide 65 text

65 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Event Bus Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 66

Slide 66 text

66 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Event Bus External Apps Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 67

Slide 67 text

67 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Event Bus External Apps IoT Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 68

Slide 68 text

68 Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Fn Client Fn ? ? ? ? ? Event Bus External Apps Cloud IoT Distributed Platform Monolith Reactive & Distributed Microservices HTTP

Slide 69

Slide 69 text

69 Monolith Evolution Module Module Module Module Module Module Module Module Discovery & Configuration Reactive & Distributed Microservices Distributed Platform Fn Client Fn ? ? ? ? ? Event Bus External Apps Polyglot Cloud IoT HTTP

Slide 70

Slide 70 text

Reactive Manifesto 70 Module Module Module Module Module Module Module Module Fn Client Fn ? ? ? ? ? Event Bus External Apps Polyglot Cloud IoT HTTP Responsive Message Driven Elastic Resilient

Slide 71

Slide 71 text

Functions

Slide 72

Slide 72 text

72 Functions Sales Database

Slide 73

Slide 73 text

73 Functions Sales HTTP Database

Slide 74

Slide 74 text

74 Functions Sales HTTP Database MQ

Slide 75

Slide 75 text

75 Functions Sales HTTP HTTP Database MQ Sales HTTP HTTP Database MQ

Slide 76

Slide 76 text

76 Functions Sales HTTP HTTP MQ Database MQ

Slide 77

Slide 77 text

77 Functions Sales HTTP HTTP MQ Database MQ Accounting Discounts Warehouse

Slide 78

Slide 78 text

Reactive & Distributed Modern Application Architectures

Slide 79

Slide 79 text

Reactive & Distributed Event Bus 79

Slide 80

Slide 80 text

Reactive & Distributed Event Bus 80

Slide 81

Slide 81 text

Reactive & Distributed Event Bus Server 1 Server 2 Server 3 Server N ... 81

Slide 82

Slide 82 text

Reactive & Distributed Event Bus Server 1 Server 2 Server 3 Server N ... 82 Handler Handler Handler Handler Handler Handler

Slide 83

Slide 83 text

Reactive & Distributed Event Bus Server 1 Server 2 Server 3 Server N ... 83 Module Module Module Handler Handler Handler Handler Handler Handler

Slide 84

Slide 84 text

Reactive & Distributed 84 Event Bus Server 1 Server 2 Server 3 Server N ... External Apps Data Sources Metrics Cloud IoT Devices etc. Module Module Module Handler Handler Handler Handler Handler Handler

Slide 85

Slide 85 text

Reactive & Distributed 85 External Apps Data Sources Metrics Cloud IoT Devices etc. Module Module Module Event Bus Handler Handler Handler Handler Handler Handler Server 1 Server 2 Server 3 Server N ...

Slide 86

Slide 86 text

Thank You! http://orkhan.io http://fb.com/groups/reactive.distributed