WEBVTT

1
00:00:01.735 --> 00:00:05.005
<00:00:01.735>Thank <00:00:01.968>you <00:00:02.201>Daniel <00:00:02.435>for <00:00:02.668>the <00:00:02.901>short <00:00:03.135>introduction.

2
00:00:05.945 --> 00:00:09.365
<00:00:05.945>Now, <00:00:06.085>as <00:00:06.225>he <00:00:06.365>said, <00:00:06.505>I <00:00:06.645>will <00:00:06.785>talk <00:00:06.925>about <00:00:07.065>event <00:00:07.205>driven <00:00:07.345>architecture

3
00:00:09.365 --> 00:00:12.525
<00:00:09.365>today <00:00:09.565>and <00:00:09.765>how <00:00:09.965>we <00:00:10.165>can <00:00:10.365>build <00:00:10.565>autonomous <00:00:10.765>microservices

4
00:00:12.755 --> 00:00:14.205
<00:00:12.755>with <00:00:13.190>event <00:00:13.625>driven <00:00:14.060>architecture.

5
00:00:16.085 --> 00:00:17.905
<00:00:16.085>For <00:00:16.318>me, <00:00:16.551>the <00:00:16.785>most <00:00:17.018>important <00:00:17.251>today <00:00:17.485>is

6
00:00:17.905 --> 00:00:19.225
<00:00:17.905>that <00:00:18.202>you <00:00:18.499>go <00:00:18.796>out <00:00:19.093>afterwards

7
00:00:19.245 --> 00:00:21.665
<00:00:19.245>and <00:00:19.420>say, <00:00:19.595>okay, <00:00:19.770>I <00:00:19.945>now <00:00:20.120>understand <00:00:20.295>there <00:00:20.470>are <00:00:20.645>different

8
00:00:21.665 --> 00:00:23.825
<00:00:21.665>advantages <00:00:22.015>and <00:00:22.365>different, <00:00:22.715>different <00:00:23.064>advantages

9
00:00:23.825 --> 00:00:26.785
<00:00:23.825>and <00:00:24.058>disadvantages <00:00:24.291>and <00:00:24.525>that <00:00:24.758>everything <00:00:24.991>you <00:00:25.224>do,

10
00:00:27.375 --> 00:00:28.985
<00:00:27.375>it's <00:00:27.575>always <00:00:27.775>a <00:00:27.975>trade <00:00:28.175>off <00:00:28.375>you <00:00:28.575>go <00:00:28.775>in.

11
00:00:29.045 --> 00:00:30.545
<00:00:29.045>So <00:00:29.382>it's <00:00:29.720>no <00:00:30.057>silver <00:00:30.395>bullet.

12
00:00:30.925 --> 00:00:34.505
<00:00:30.925>Uh, <00:00:31.080>I <00:00:31.236>guess <00:00:31.391>I <00:00:31.547>heard <00:00:31.702>a <00:00:31.858>talk <00:00:32.013>some <00:00:32.169>hours <00:00:32.325>ago,

13
00:00:34.885 --> 00:00:36.825
<00:00:34.885>he <00:00:35.085>said <00:00:35.285>like <00:00:35.485>there <00:00:35.684>is <00:00:35.885>no <00:00:36.085>silver <00:00:36.285>bullet.

14
00:00:37.185 --> 00:00:39.345
<00:00:37.185>Everyone <00:00:37.340>who <00:00:37.496>said <00:00:37.651>there <00:00:37.807>is <00:00:37.962>a <00:00:38.118>silver <00:00:38.273>bullet, <00:00:38.429>he's <00:00:38.585>lying

15
00:00:39.485 --> 00:00:41.225
<00:00:39.485>and <00:00:39.718>I <00:00:39.951>can <00:00:40.185>fully <00:00:40.418>agree <00:00:40.651>with <00:00:40.885>it.

16
00:00:42.325 --> 00:00:45.345
<00:00:42.325>Um, <00:00:42.465>yeah, <00:00:42.605>so <00:00:42.745>this <00:00:42.885>is <00:00:43.025>my <00:00:43.165>main <00:00:43.305>goal <00:00:43.445>for <00:00:43.585>you <00:00:43.725>today.

17
00:00:47.085 --> 00:00:49.505
<00:00:47.085>As <00:00:47.318>Daniel <00:00:47.551>already <00:00:47.785>said, <00:00:48.018>I'm <00:00:48.251>an <00:00:48.485>architect,

18
00:00:49.645 --> 00:00:52.505
<00:00:49.645>I'm <00:00:49.820>a <00:00:49.995>software <00:00:50.170>developer, <00:00:50.345>uh, <00:00:50.520>mainly <00:00:50.695>focusing <00:00:50.870>on <00:00:51.045>serverless.

19
00:00:52.885 --> 00:00:55.345
<00:00:52.885>And <00:00:53.059>furthermore <00:00:53.235>I <00:00:53.410>have <00:00:53.585>a <00:00:53.760>YouTube <00:00:53.934>channel <00:00:54.110>about <00:00:54.285>Azure

20
00:00:55.345 --> 00:00:58.345
<00:00:55.345>Serverless <00:00:55.545>and <00:00:55.745>I'm <00:00:55.945>running <00:00:56.144>two <00:00:56.345>meetups <00:00:56.545>in <00:00:56.745>Cologne.

21
00:00:58.565 --> 00:01:00.145
<00:00:58.565>One <00:00:58.798>is <00:00:59.031>a <00:00:59.265>cologne <00:00:59.498>net <00:00:59.731>user <00:00:59.964>group

22
00:01:00.525 --> 00:01:03.825
<00:01:00.525>and <00:01:00.699>a <00:01:00.875>serverless <00:01:01.050>group <00:01:01.225>where <00:01:01.400>we <00:01:01.574>talk <00:01:01.750>about <00:01:01.925>serverless

23
00:01:04.045 --> 00:01:06.145
<00:01:04.045>and <00:01:04.245>in <00:01:04.445>my <00:01:04.644>case <00:01:04.845>for <00:01:05.045>sure <00:01:05.245>about <00:01:05.445>Azure.

24
00:01:08.335 --> 00:01:10.915
<00:01:08.335>And <00:01:08.510>before <00:01:08.685>I <00:01:08.860>start <00:01:09.035>now <00:01:09.210>with <00:01:09.385>event <00:01:09.560>driven <00:01:09.735>architecture,

25
00:01:10.915 --> 00:01:12.635
<00:01:10.914>I <00:01:11.089>want <00:01:11.264>to <00:01:11.440>show <00:01:11.615>you <00:01:11.789>first <00:01:11.964>the <00:01:12.139>request <00:01:12.315>driven.

26
00:01:13.015 --> 00:01:14.195
<00:01:13.015>We <00:01:13.369>request <00:01:13.723>driven <00:01:14.077>or,

27
00:01:14.615 --> 00:01:17.235
<00:01:14.615>or <00:01:14.815>I <00:01:15.015>would <00:01:15.214>say <00:01:15.414>it's <00:01:15.615>basically <00:01:15.815>the <00:01:16.015>default.

28
00:01:17.755 --> 00:01:18.955
<00:01:17.755>I <00:01:17.935>guess <00:01:18.115>every <00:01:18.295>one <00:01:18.475>of <00:01:18.655>you <00:01:18.835>started

29
00:01:18.955 --> 00:01:20.915
<00:01:18.955>with <00:01:19.130>request <00:01:19.304>driven <00:01:19.480>at <00:01:19.655>the <00:01:19.830>beginning <00:01:20.005>of <00:01:20.179>his <00:01:20.355>career.

30
00:01:21.545 --> 00:01:25.155
<00:01:21.545>Something <00:01:21.778>like <00:01:22.011>HTP, <00:01:22.245>maybe <00:01:22.478>nowadays, <00:01:22.711>GRPC, <00:01:22.945>whatever.

31
00:01:25.815 --> 00:01:28.435
<00:01:25.815>And <00:01:25.990>basically <00:01:26.164>this <00:01:26.340>is <00:01:26.515>the <00:01:26.690>alternative <00:01:26.865>to <00:01:27.039>event <00:01:27.215>driven.

32
00:01:29.505 --> 00:01:33.515
<00:01:29.505>What <00:01:29.645>we <00:01:29.785>have <00:01:29.925>is <00:01:30.065>for <00:01:30.205>example, <00:01:30.345>two <00:01:30.485>systems, <00:01:30.625>an <00:01:30.765>order <00:01:30.905>service

33
00:01:33.655 --> 00:01:35.435
<00:01:33.655>and <00:01:33.888>a <00:01:34.121>contract <00:01:34.355>service, <00:01:34.588>uh, <00:01:34.821>shipping <00:01:35.055>service.

34
00:01:36.495 --> 00:01:38.755
<00:01:36.495>And <00:01:36.775>whenever <00:01:37.055>we <00:01:37.335>want <00:01:37.615>to <00:01:37.895>interact

35
00:01:38.755 --> 00:01:41.795
<00:01:38.755>between <00:01:38.929>these <00:01:39.104>two <00:01:39.280>services, <00:01:39.455>we <00:01:39.630>can <00:01:39.804>make <00:01:39.979>a <00:01:40.155>request.

36
00:01:41.855 --> 00:01:43.315
<00:01:41.854>For <00:01:42.183>example, <00:01:42.512>an <00:01:42.840>order <00:01:43.169>happened

37
00:01:43.455 --> 00:01:45.915
<00:01:43.455>and <00:01:43.630>when <00:01:43.804>this <00:01:43.980>order <00:01:44.155>happened, <00:01:44.330>you <00:01:44.505>send <00:01:44.679>a <00:01:44.855>request

38
00:01:46.015 --> 00:01:47.315
<00:01:46.015>for <00:01:46.307>creating <00:01:46.600>a <00:01:46.892>shipping <00:01:47.185>label.

39
00:01:48.055 --> 00:01:50.755
<00:01:48.055>So <00:01:48.255>what <00:01:48.455>we <00:01:48.655>do, <00:01:48.855>we <00:01:49.055>send <00:01:49.255>a <00:01:49.455>request,

40
00:01:51.375 --> 00:01:54.275
<00:01:51.375>we <00:01:51.550>waiting <00:01:51.725>on <00:01:51.900>social <00:01:52.075>shipping <00:01:52.250>service, <00:01:52.425>do <00:01:52.600>some <00:01:52.775>jobs

41
00:01:54.455 --> 00:01:56.595
<00:01:54.455>and <00:01:54.655>then <00:01:54.855>respond <00:01:55.054>with <00:01:55.255>a <00:01:55.455>shipping <00:01:55.655>label <00:01:55.855>back

42
00:01:57.185 --> 00:01:58.755
<00:01:57.185>then <00:01:57.418>the <00:01:57.651>order <00:01:57.885>service <00:01:58.118>gets <00:01:58.351>this <00:01:58.585>label,

43
00:01:58.855 --> 00:02:01.915
<00:01:58.854>can <00:01:58.982>do <00:01:59.109>some <00:01:59.236>stuff <00:01:59.364>again <00:01:59.491>and <00:01:59.618>return <00:01:59.745>as <00:01:59.873>well <00:02:00.000>to <00:02:00.127>the <00:02:00.255>customer

44
00:02:01.975 --> 00:02:03.795
<00:02:01.975>and <00:02:02.255>said, <00:02:02.535>yeah, <00:02:02.815>everything <00:02:03.095>is <00:02:03.375>fine.

45
00:02:04.335 --> 00:02:07.395
<00:02:04.335>The <00:02:04.535>order <00:02:04.735>is <00:02:04.934>processed, <00:02:05.134>shipping <00:02:05.335>will <00:02:05.535>go <00:02:05.735>further

46
00:02:07.495 --> 00:02:10.875
<00:02:07.495>and <00:02:07.695>some <00:02:07.895>days <00:02:08.095>and <00:02:08.295>everything <00:02:08.495>is <00:02:08.695>quite <00:02:08.895>nice

47
00:02:12.745 --> 00:02:15.325
<00:02:12.745>and <00:02:12.945>we <00:02:13.145>can <00:02:13.345>for <00:02:13.545>sure <00:02:13.745>add <00:02:13.945>multiple <00:02:14.145>services.

48
00:02:15.425 --> 00:02:17.325
<00:02:15.425>So <00:02:15.600>for <00:02:15.775>example, <00:02:15.950>we <00:02:16.125>can <00:02:16.300>add <00:02:16.475>an <00:02:16.650>article <00:02:16.825>service

49
00:02:17.825 --> 00:02:19.485
<00:02:17.825>and <00:02:18.024>when <00:02:18.225>you <00:02:18.424>have <00:02:18.625>request <00:02:18.825>driven, <00:02:19.024>you <00:02:19.225>wait

50
00:02:19.485 --> 00:02:20.965
<00:02:19.485>for <00:02:19.751>a <00:02:20.017>response <00:02:20.284>of <00:02:20.550>this <00:02:20.817>request.

51
00:02:21.705 --> 00:02:23.445
<00:02:21.704>So <00:02:21.904>what <00:02:22.105>you <00:02:22.304>can <00:02:22.505>do <00:02:22.704>is, <00:02:22.904>for <00:02:23.105>example,

52
00:02:23.505 --> 00:02:26.565
<00:02:23.505>before <00:02:23.704>creating <00:02:23.905>a <00:02:24.105>shipping <00:02:24.305>shipping <00:02:24.505>label, <00:02:24.704>you <00:02:24.905>want

53
00:02:26.565 --> 00:02:29.765
<00:02:26.565>to <00:02:26.765>ensure <00:02:26.965>that <00:02:27.165>the <00:02:27.365>article <00:02:27.565>service <00:02:27.765>says <00:02:27.965>here,

54
00:02:29.905 --> 00:02:32.925
<00:02:29.905>the <00:02:30.045>article <00:02:30.185>is <00:02:30.325>in <00:02:30.465>stock <00:02:30.605>and <00:02:30.745>we <00:02:30.885>can <00:02:31.025>ship <00:02:31.165>this <00:02:31.305>article.

55
00:02:33.785 --> 00:02:36.525
<00:02:33.785>And <00:02:33.940>first <00:02:34.096>when <00:02:34.251>the <00:02:34.407>article <00:02:34.562>respond <00:02:34.718>with <00:02:34.873>everything <00:02:35.029>is <00:02:35.185>fine,

56
00:02:37.625 --> 00:02:40.485
<00:02:37.625>you <00:02:37.765>can <00:02:37.905>go <00:02:38.045>to <00:02:38.185>the <00:02:38.325>shipping <00:02:38.465>service, <00:02:38.605>make <00:02:38.745>a <00:02:38.885>shipping <00:02:39.025>label

57
00:02:40.505 --> 00:02:41.685
<00:02:40.505>and <00:02:40.770>everything <00:02:41.036>is <00:02:41.301>fine <00:02:41.567>again.

58
00:02:42.145 --> 00:02:43.765
<00:02:42.145>And <00:02:42.425>the <00:02:42.705>yeah <00:02:42.985>process <00:02:43.265>is <00:02:43.545>done.

59
00:02:44.865 --> 00:02:47.365
<00:02:44.865>So <00:02:45.040>by <00:02:45.215>using <00:02:45.390>re <00:02:45.565>driven, <00:02:45.740>you <00:02:45.915>have <00:02:46.090>the <00:02:46.265>advantage

60
00:02:47.545 --> 00:02:50.685
<00:02:47.545>of <00:02:47.700>a <00:02:47.856>clear <00:02:48.011>flow, <00:02:48.167>you <00:02:48.322>know <00:02:48.478>exactly <00:02:48.633>in <00:02:48.789>which <00:02:48.945>order,

61
00:02:50.775 --> 00:02:52.045
<00:02:50.775>which <00:02:51.060>system <00:02:51.346>will <00:02:51.632>be <00:02:51.918>called.

62
00:02:52.185 --> 00:02:54.125
<00:02:52.185>So <00:02:52.465>for <00:02:52.745>example, <00:02:53.025>the <00:02:53.305>order <00:02:53.585>service

63
00:02:54.705 --> 00:02:56.085
<00:02:54.704>is <00:02:55.119>a <00:02:55.533>so-called <00:02:55.947>orchestrator,

64
00:02:56.435 --> 00:02:59.605
<00:02:56.435>this <00:02:56.590>is <00:02:56.746>why <00:02:56.901>request <00:02:57.057>is <00:02:57.212>also <00:02:57.368>known <00:02:57.523>as <00:02:57.679>service <00:02:57.835>orchestration.

65
00:03:00.105 --> 00:03:01.285
<00:03:00.105>We <00:03:00.459>have <00:03:00.813>one <00:03:01.167>orchestrator

66
00:03:01.585 --> 00:03:06.055
<00:03:01.585>and <00:03:01.785>this <00:03:01.985>one <00:03:02.185>orchestrator <00:03:02.385>have <00:03:02.585>the <00:03:02.785>whole <00:03:02.985>brain

67
00:03:06.435 --> 00:03:09.375
<00:03:06.435>how <00:03:06.610>to <00:03:06.785>yeah, <00:03:06.960>fulfill <00:03:07.135>the <00:03:07.310>job <00:03:07.485>to <00:03:07.660>be <00:03:07.835>done.

68
00:03:10.035 --> 00:03:12.775
<00:03:10.035>In <00:03:10.174>this <00:03:10.315>case, <00:03:10.454>the <00:03:10.595>order <00:03:10.734>service <00:03:10.875>knows <00:03:11.015>exactly <00:03:11.155>first <00:03:11.295>we <00:03:11.435>need

69
00:03:12.775 --> 00:03:13.655
<00:03:12.775>to <00:03:12.973>call <00:03:13.171>the <00:03:13.369>article <00:03:13.567>service,

70
00:03:14.085 --> 00:03:15.295
<00:03:14.085>then <00:03:14.302>we <00:03:14.520>call <00:03:14.738>the <00:03:14.956>shipping <00:03:15.173>service.

71
00:03:15.635 --> 00:03:19.575
<00:03:15.635>And <00:03:15.774>when <00:03:15.915>everything <00:03:16.054>is <00:03:16.195>fine <00:03:16.334>we <00:03:16.475>can <00:03:16.614>return <00:03:16.755>200 <00:03:16.894>for <00:03:17.035>example.

72
00:03:21.375 --> 00:03:23.875
<00:03:21.375>But <00:03:21.575>as <00:03:21.775>well <00:03:21.975>here <00:03:22.175>are <00:03:22.375>advantages <00:03:22.575>and <00:03:22.775>disadvantages.

73
00:03:24.155 --> 00:03:28.795
<00:03:24.155>I <00:03:24.271>will <00:03:24.388>talk <00:03:24.505>in <00:03:24.621>a <00:03:24.738>few <00:03:24.855>minutes <00:03:24.971>about <00:03:25.088>first <00:03:25.205>what <00:03:25.321>can <00:03:25.438>we <00:03:25.555>do

74
00:03:29.175 --> 00:03:32.315
<00:03:29.175>to <00:03:29.455>eliminate <00:03:29.735>these <00:03:30.015>coupling <00:03:30.295>We <00:03:30.575>have,

75
00:03:32.315 --> 00:03:34.675
<00:03:32.315>because <00:03:32.515>all <00:03:32.715>service <00:03:32.915>knows <00:03:33.115>everything <00:03:33.315>about <00:03:33.515>other <00:03:33.715>services

76
00:03:34.675 --> 00:03:38.795
<00:03:34.675>and <00:03:34.830>it's <00:03:34.986>highly <00:03:35.141>coupled, <00:03:35.297>we <00:03:35.452>can <00:03:35.608>add <00:03:35.763>an <00:03:35.919>event <00:03:36.075>broker

77
00:03:39.695 --> 00:03:40.915
<00:03:39.695>and <00:03:39.914>by <00:03:40.134>adding <00:03:40.353>an <00:03:40.573>event <00:03:40.793>broker

78
00:03:40.935 --> 00:03:43.475
<00:03:40.935>and <00:03:41.110>using <00:03:41.285>events, <00:03:41.460>we <00:03:41.635>have <00:03:41.810>an <00:03:41.985>event <00:03:42.160>driven <00:03:42.335>architecture.

79
00:03:44.735 --> 00:03:47.635
<00:03:44.735>So <00:03:44.910>the <00:03:45.085>same <00:03:45.260>flow <00:03:45.435>I <00:03:45.610>want <00:03:45.785>to <00:03:45.960>show <00:03:46.135>you

80
00:03:48.255 --> 00:03:50.955
<00:03:48.255>is <00:03:48.410>in <00:03:48.566>this <00:03:48.721>case <00:03:48.877>we <00:03:49.032>have <00:03:49.188>an <00:03:49.343>order <00:03:49.499>service <00:03:49.655>again

81
00:03:51.135 --> 00:03:53.115
<00:03:51.135>and <00:03:51.368>the <00:03:51.601>order <00:03:51.834>service <00:03:52.068>creates <00:03:52.301>a <00:03:52.535>so-called

82
00:03:53.125 --> 00:03:54.235
<00:03:53.125>order <00:03:53.624>created <00:03:54.124>event.

83
00:03:55.865 --> 00:03:58.205
<00:03:55.865>An <00:03:56.065>event <00:03:56.265>is <00:03:56.465>basically <00:03:56.665>a <00:03:56.865>fact <00:03:57.065>that <00:03:57.265>happened.

84
00:03:58.825 --> 00:03:59.845
<00:03:58.825>So <00:03:59.131>for <00:03:59.436>example, <00:03:59.743>when

85
00:03:59.845 --> 00:04:02.125
<00:03:59.845>inside <00:04:00.045>the <00:04:00.245>order <00:04:00.445>service <00:04:00.645>the <00:04:00.845>order <00:04:01.045>is <00:04:01.245>made,

86
00:04:02.755 --> 00:04:04.685
<00:04:02.755>then <00:04:03.035>the <00:04:03.315>order <00:04:03.595>service <00:04:03.875>doesn't <00:04:04.155>say,

87
00:04:04.745 --> 00:04:06.885
<00:04:04.745>Hey <00:04:04.978>please <00:04:05.211>now <00:04:05.445>give <00:04:05.678>me <00:04:05.911>an <00:04:06.145>article

88
00:04:06.905 --> 00:04:08.405
<00:04:06.905>or <00:04:07.097>check <00:04:07.290>if <00:04:07.483>the <00:04:07.676>article <00:04:07.869>is <00:04:08.062>in <00:04:08.255>stock.

89
00:04:08.715 --> 00:04:09.805
<00:04:08.715>It's <00:04:09.042>just <00:04:09.369>an <00:04:09.696>information.

90
00:04:10.105 --> 00:04:12.845
<00:04:10.105>It <00:04:10.454>basically <00:04:10.804>this <00:04:11.155>order <00:04:11.505>happened

91
00:04:12.985 --> 00:04:15.445
<00:04:12.985>and <00:04:13.218>now <00:04:13.451>um, <00:04:13.685>every <00:04:13.918>system <00:04:14.151>who <00:04:14.385>wants

92
00:04:15.445 --> 00:04:17.845
<00:04:15.445>to <00:04:15.620>consume <00:04:15.795>this <00:04:15.970>event <00:04:16.144>feel <00:04:16.320>free <00:04:16.495>to <00:04:16.670>do <00:04:16.844>it.

93
00:04:18.465 --> 00:04:20.285
<00:04:18.464>Um, <00:04:18.698>the <00:04:18.931>other <00:04:19.164>service <00:04:19.398>doesn't <00:04:19.631>care <00:04:19.864>honestly.

94
00:04:20.985 --> 00:04:23.245
<00:04:20.985>So <00:04:21.160>what <00:04:21.335>happened? <00:04:21.510>The <00:04:21.685>order <00:04:21.860>service <00:04:22.035>sends <00:04:22.210>this <00:04:22.385>event

95
00:04:23.245 --> 00:04:25.805
<00:04:23.245>to <00:04:23.445>the <00:04:23.645>event <00:04:23.845>broker <00:04:24.045>gets <00:04:24.245>a <00:04:24.445>response <00:04:24.645>like

96
00:04:25.915 --> 00:04:27.165
<00:04:25.915>okay, <00:04:26.290>everything <00:04:26.665>is <00:04:27.040>fine.

97
00:04:27.725 --> 00:04:30.685
<00:04:27.725>I <00:04:27.852>will <00:04:27.979>have <00:04:28.106>a <00:04:28.234>look <00:04:28.361>that <00:04:28.488>every <00:04:28.615>consumer <00:04:28.743>will <00:04:28.870>get <00:04:28.997>this <00:04:29.125>event.

98
00:04:32.065 --> 00:04:35.165
<00:04:32.065>And <00:04:32.220>then <00:04:32.376>the <00:04:32.531>event <00:04:32.687>broker <00:04:32.842>will <00:04:32.998>ensure <00:04:33.153>that <00:04:33.309>every <00:04:33.465>system

99
00:04:35.665 --> 00:04:38.285
<00:04:35.665>who <00:04:35.820>wants <00:04:35.976>to <00:04:36.131>get <00:04:36.287>this <00:04:36.442>event <00:04:36.598>will <00:04:36.753>get <00:04:36.909>this <00:04:37.065>event.

100
00:04:39.855 --> 00:04:43.035
<00:04:39.855>And <00:04:39.995>by <00:04:40.135>using <00:04:40.275>this, <00:04:40.415>as <00:04:40.555>you <00:04:40.695>can <00:04:40.835>see, <00:04:40.975>it's <00:04:41.115>more <00:04:41.255>decoupled.

101
00:04:43.835 --> 00:04:46.215
<00:04:43.835>The <00:04:43.990>order <00:04:44.146>service <00:04:44.301>doesn't <00:04:44.457>know <00:04:44.612>if <00:04:44.768>there <00:04:44.923>are <00:04:45.079>article <00:04:45.234>service,

102
00:04:46.335 --> 00:04:48.735
<00:04:46.335>a <00:04:46.534>shipping <00:04:46.734>service, <00:04:46.935>a <00:04:47.135>notification <00:04:47.335>service <00:04:47.534>or <00:04:47.734>whatever.

103
00:04:49.555 --> 00:04:51.375
<00:04:49.555>And <00:04:49.788>the <00:04:50.021>order <00:04:50.255>service <00:04:50.488>doesn't <00:04:50.721>care <00:04:50.955>if

104
00:04:51.375 --> 00:04:52.535
<00:04:51.375>there's <00:04:51.723>such <00:04:52.070>a <00:04:52.419>service.

105
00:04:53.765 --> 00:04:57.825
<00:04:53.765>And <00:04:53.965>by <00:04:54.164>using <00:04:54.365>these <00:04:54.565>uh, <00:04:54.765>event <00:04:54.965>driven <00:04:55.164>architecture

106
00:04:58.405 --> 00:05:00.025
<00:04:58.405>or <00:04:58.755>also <00:04:59.104>known <00:04:59.455>as <00:04:59.804>choreography,

107
00:05:00.955 --> 00:05:04.425
<00:05:00.955>every <00:05:01.082>system <00:05:01.209>has <00:05:01.336>exactly <00:05:01.464>one <00:05:01.591>job <00:05:01.718>and <00:05:01.845>only <00:05:01.973>does <00:05:02.100>his <00:05:02.227>own <00:05:02.354>job.

108
00:05:04.765 --> 00:05:06.345
<00:05:04.765>So <00:05:04.940>for <00:05:05.115>example, <00:05:05.289>when <00:05:05.465>you <00:05:05.640>have <00:05:05.815>a <00:05:05.990>look <00:05:06.164>back

109
00:05:06.345 --> 00:05:10.265
<00:05:06.345>to <00:05:06.500>the <00:05:06.656>request <00:05:06.811>driven, <00:05:06.967>the <00:05:07.122>order <00:05:07.278>service <00:05:07.433>doesn't <00:05:07.589>only <00:05:07.745>make

110
00:05:10.445 --> 00:05:13.225
<00:05:10.445>his <00:05:10.678>job <00:05:10.911>like <00:05:11.145>yeah, <00:05:11.378>fulfilling <00:05:11.611>an <00:05:11.844>order.

111
00:05:13.925 --> 00:05:16.425
<00:05:13.925>He <00:05:14.125>also <00:05:14.325>has <00:05:14.525>this <00:05:14.725>job <00:05:14.925>of <00:05:15.125>an <00:05:15.325>orchestrator.

112
00:05:17.165 --> 00:05:18.305
<00:05:17.165>And <00:05:17.370>here <00:05:17.575>it's <00:05:17.780>not <00:05:17.985>the <00:05:18.191>case.

113
00:05:18.485 --> 00:05:21.545
<00:05:18.485>We <00:05:18.640>only <00:05:18.796>do <00:05:18.951>our <00:05:19.107>job <00:05:19.262>sending <00:05:19.418>an <00:05:19.573>event <00:05:19.729>a <00:05:19.885>notification

114
00:05:21.855 --> 00:05:23.705
<00:05:21.855>that <00:05:22.205>some, <00:05:22.555>that <00:05:22.905>something <00:05:23.255>happened

115
00:05:24.005 --> 00:05:25.105
<00:05:24.005>and <00:05:24.252>then <00:05:24.500>everything <00:05:24.747>is <00:05:24.995>fine.

116
00:05:28.585 --> 00:05:31.165
<00:05:28.585>So <00:05:28.864>by <00:05:29.145>using <00:05:29.424>event <00:05:29.705>driven <00:05:29.984>architecture,

117
00:05:31.425 --> 00:05:32.685
<00:05:31.425>we <00:05:31.651>have <00:05:31.878>a <00:05:32.105>more <00:05:32.332>resilient <00:05:32.559>system.

118
00:05:35.235 --> 00:05:37.715
<00:05:35.235>Honestly, <00:05:35.435>the <00:05:35.635>advantages <00:05:35.835>of <00:05:36.035>event <00:05:36.235>driven <00:05:36.435>are <00:05:36.635>more

119
00:05:37.715 --> 00:05:40.835
<00:05:37.715>or <00:05:37.995>less <00:05:38.275>the <00:05:38.555>disadvantages <00:05:38.835>of <00:05:39.115>uh,

120
00:05:40.895 --> 00:05:42.715
<00:05:40.895>of <00:05:41.174>request <00:05:41.455>driven <00:05:41.734>and <00:05:42.015>visa <00:05:42.294>bursts.

121
00:05:42.935 --> 00:05:45.235
<00:05:42.935>So <00:05:43.135>basically <00:05:43.335>we <00:05:43.535>have <00:05:43.735>a <00:05:43.935>more <00:05:44.135>resilient <00:05:44.335>system.

122
00:05:46.225 --> 00:05:50.275
<00:05:46.225>That <00:05:46.365>means <00:05:46.505>when <00:05:46.645>one <00:05:46.785>system <00:05:46.925>goes <00:05:47.065>down, <00:05:47.205>yeah, <00:05:47.345>no <00:05:47.485>one <00:05:47.625>cares.

123
00:05:50.855 --> 00:05:53.555
<00:05:50.855>So <00:05:51.055>other <00:05:51.255>service, <00:05:51.455>yeah, <00:05:51.655>already <00:05:51.855>send <00:05:52.055>the <00:05:52.255>event

124
00:05:53.775 --> 00:05:57.600
<00:05:53.775>to <00:05:53.914>the <00:05:54.054>event <00:05:54.195>broker <00:05:54.335>and <00:05:54.474>every <00:05:54.614>other <00:05:54.755>system <00:05:54.895>when <00:05:55.034>there's <00:05:55.174>a

125
00:05:57.600 --> 00:06:01.125
<00:05:57.600>system <00:05:57.727>down, <00:05:57.854>um, <00:05:57.981>yeah, <00:05:58.109>we <00:05:58.236>just <00:05:58.363>wait <00:05:58.490>until <00:05:58.618>it's <00:05:58.745>back, <00:05:58.872>back <00:05:59.000>up

126
00:06:01.305 --> 00:06:03.725
<00:06:01.305>and <00:06:01.480>running <00:06:01.655>and <00:06:01.830>when <00:06:02.005>when <00:06:02.180>this <00:06:02.355>is <00:06:02.530>the <00:06:02.705>case.

127
00:06:04.355 --> 00:06:07.405
<00:06:04.355>Yeah, <00:06:04.555>and <00:06:04.755>the <00:06:04.955>the <00:06:05.155>system <00:06:05.355>will <00:06:05.555>consume <00:06:05.755>the

128
00:06:07.405 --> 00:06:08.445
<00:06:07.405>event <00:06:07.638>and <00:06:07.873>everything <00:06:08.107>is <00:06:08.341>fine.

129
00:06:08.585 --> 00:06:10.925
<00:06:08.585>So <00:06:08.818>there's <00:06:09.051>nothing <00:06:09.284>yeah, <00:06:09.518>we <00:06:09.751>care <00:06:09.984>about

130
00:06:10.925 --> 00:06:12.045
<00:06:10.925>or <00:06:11.177>any <00:06:11.429>system <00:06:11.681>cares <00:06:11.933>about.

131
00:06:12.745 --> 00:06:14.285
<00:06:12.745>We <00:06:13.022>have <00:06:13.299>plug <00:06:13.576>and <00:06:13.853>play <00:06:14.131>functionality.

132
00:06:15.105 --> 00:06:17.165
<00:06:15.105>So <00:06:15.305>basically <00:06:15.505>we <00:06:15.705>can <00:06:15.905>just <00:06:16.105>add <00:06:16.305>multiple <00:06:16.505>systems.

133
00:06:17.345 --> 00:06:19.765
<00:06:17.345>We <00:06:17.520>other <00:06:17.695>systems <00:06:17.870>can <00:06:18.045>consume <00:06:18.220>this <00:06:18.395>event <00:06:18.570>or <00:06:18.745>not.

134
00:06:20.145 --> 00:06:23.685
<00:06:20.145>And <00:06:20.284>as <00:06:20.424>well <00:06:20.565>all <00:06:20.705>systems <00:06:20.844>which <00:06:20.984>sense <00:06:21.125>events <00:06:21.265>doesn't <00:06:21.405>care <00:06:21.544>if

135
00:06:23.695 --> 00:06:27.325
<00:06:23.695>there <00:06:23.928>are <00:06:24.161>100 <00:06:24.395>or <00:06:24.628>zero <00:06:24.861>um, <00:06:25.094>consumers.

136
00:06:27.915 --> 00:06:29.245
<00:06:27.915>It's <00:06:28.154>basically <00:06:28.393>just <00:06:28.633>plug <00:06:28.872>and <00:06:29.112>play.

137
00:06:29.825 --> 00:06:33.645
<00:06:29.825>And <00:06:30.000>it's <00:06:30.175>also <00:06:30.349>in <00:06:30.525>premise, <00:06:30.700>meaning <00:06:30.875>we <00:06:31.050>don't <00:06:31.224>have

138
00:06:34.205 --> 00:06:35.445
<00:06:34.205>multiple <00:06:35.320>requests.

139
00:06:35.445 --> 00:06:36.565
<00:06:35.445>We <00:06:35.697>just <00:06:35.949>made <00:06:36.201>one <00:06:36.453>request

140
00:06:36.865 --> 00:06:39.765
<00:06:36.865>and <00:06:37.005>in <00:06:37.145>back <00:06:37.285>in <00:06:37.425>the <00:06:37.565>background <00:06:37.705>there <00:06:37.845>could <00:06:37.985>be <00:06:38.125>multiple <00:06:38.265>um,

141
00:06:39.915 --> 00:06:42.825
<00:06:39.915>yeah, <00:06:40.148>jobs <00:06:40.381>running <00:06:40.615>and <00:06:40.848>maybe <00:06:41.081>this <00:06:41.315>is

142
00:06:42.825 --> 00:06:44.105
<00:06:42.825>what <00:06:43.017>we <00:06:43.209>want <00:06:43.401>to <00:06:43.593>figure <00:06:43.785>out <00:06:43.977>today.

143
00:06:44.555 --> 00:06:46.425
<00:06:44.555>Event <00:06:44.905>driven <00:06:45.255>architecture <00:06:45.605>is <00:06:45.955>autonomous

144
00:06:47.005 --> 00:06:48.185
<00:06:47.005>and <00:06:47.359>what <00:06:47.713>autonomous <00:06:48.067>means.

145
00:06:48.465 --> 00:06:51.105
<00:06:48.465>I <00:06:48.640>will <00:06:48.815>show <00:06:48.990>you <00:06:49.165>later <00:06:49.340>as <00:06:49.515>well. <00:06:49.690>But <00:06:49.865>first,

146
00:06:51.295 --> 00:06:53.825
<00:06:51.295>what <00:06:51.528>are <00:06:51.761>the <00:06:51.995>disadvantages <00:06:52.228>of <00:06:52.461>event <00:06:52.695>driven?

147
00:06:55.195 --> 00:06:56.705
<00:06:55.195>First <00:06:55.421>of <00:06:55.647>all, <00:06:55.874>there's <00:06:56.101>no <00:06:56.327>clear <00:06:56.554>process.

148
00:06:58.525 --> 00:07:01.505
<00:06:58.525>As <00:06:58.680>I <00:06:58.836>said <00:06:58.991>in <00:06:59.147>request <00:06:59.302>driven <00:06:59.458>we <00:06:59.613>have <00:06:59.769>an <00:06:59.924>orchestrator

149
00:07:01.525 --> 00:07:03.585
<00:07:01.525>and <00:07:01.758>the <00:07:01.991>orchestrator <00:07:02.224>knows <00:07:02.458>exactly <00:07:02.691>what <00:07:02.924>happened,

150
00:07:03.635 --> 00:07:07.065
<00:07:03.635>which <00:07:03.790>step <00:07:03.946>happened <00:07:04.101>and <00:07:04.257>when <00:07:04.412>in <00:07:04.568>which <00:07:04.723>order, <00:07:04.879>et <00:07:05.034>cetera.

151
00:07:07.485 --> 00:07:09.225
<00:07:07.485>So <00:07:07.660>basically <00:07:07.835>an <00:07:08.010>event <00:07:08.185>driven, <00:07:08.360>it's <00:07:08.535>not <00:07:08.710>the <00:07:08.885>case.

152
00:07:09.225 --> 00:07:11.905
<00:07:09.225>We <00:07:09.400>just <00:07:09.575>sent <00:07:09.750>an <00:07:09.925>event <00:07:10.100>to <00:07:10.275>the <00:07:10.450>event <00:07:10.625>broker

153
00:07:12.005 --> 00:07:15.105
<00:07:12.005>and <00:07:12.145>then <00:07:12.284>there <00:07:12.425>could <00:07:12.565>be, <00:07:12.705>as <00:07:12.844>I <00:07:12.985>said, <00:07:13.125>one <00:07:13.265>or <00:07:13.405>100

154
00:07:15.245 --> 00:07:17.465
<00:07:15.245>or <00:07:15.478>a <00:07:15.711>million <00:07:15.945>consumers <00:07:16.178>consuming <00:07:16.411>this <00:07:16.645>event.

155
00:07:17.725 --> 00:07:21.675
<00:07:17.725>We <00:07:17.880>just <00:07:18.036>don't <00:07:18.191>care. <00:07:18.347>It's <00:07:18.502>harder <00:07:18.658>to <00:07:18.813>debug <00:07:18.969>as <00:07:19.125>well.

156
00:07:21.695 --> 00:07:23.555
<00:07:21.695>We <00:07:21.870>need <00:07:22.045>to <00:07:22.219>have <00:07:22.395>a <00:07:22.570>look <00:07:22.745>to <00:07:22.920>even <00:07:23.094>potency

157
00:07:23.865 --> 00:07:25.875
<00:07:23.865>because <00:07:24.215>yeah, <00:07:24.565>an <00:07:24.915>event <00:07:25.265>driven

158
00:07:26.135 --> 00:07:30.395
<00:07:26.135>or <00:07:26.335>event <00:07:26.534>brokers <00:07:26.735>doesn't <00:07:26.935>have <00:07:27.135>an <00:07:27.335>exact <00:07:27.534>once,

159
00:07:30.935 --> 00:07:35.875
<00:07:30.935>um, <00:07:31.062>or <00:07:31.189>they <00:07:31.316>don't <00:07:31.444>send <00:07:31.571>an <00:07:31.698>event <00:07:31.825>exact <00:07:31.953>once <00:07:32.080>it's <00:07:32.207>ever <00:07:32.335>ava,

160
00:07:36.585 --> 00:07:38.195
<00:07:36.585>it's <00:07:36.784>at <00:07:36.984>most <00:07:37.185>once <00:07:37.385>or <00:07:37.585>at <00:07:37.784>least <00:07:37.984>once

161
00:07:38.415 --> 00:07:42.895
<00:07:38.415>and <00:07:38.615>never <00:07:38.815>exactly <00:07:39.015>once <00:07:39.215>from <00:07:39.415>time <00:07:39.615>to <00:07:39.815>time.

162
00:07:42.895 --> 00:07:44.015
<00:07:42.895>We <00:07:43.231>need <00:07:43.567>data <00:07:43.902>replication

163
00:07:44.155 --> 00:07:47.215
<00:07:44.155>and <00:07:44.282>event <00:07:44.409>driven <00:07:44.536>based <00:07:44.664>on <00:07:44.791>the <00:07:44.918>type <00:07:45.045>of <00:07:45.173>event <00:07:45.300>pattern <00:07:45.427>you <00:07:45.554>use.

164
00:07:48.315 --> 00:07:52.335
<00:07:48.315>And <00:07:48.548>we <00:07:48.781>have <00:07:49.015>honestly <00:07:49.248>hard <00:07:49.481>complex <00:07:49.715>transactions

165
00:07:52.335 --> 00:07:55.575
<00:07:52.335>because <00:07:52.462>at <00:07:52.589>the <00:07:52.716>end <00:07:52.844>a <00:07:52.971>request <00:07:53.098>driven <00:07:53.225>way, <00:07:53.353>you <00:07:53.480>can <00:07:53.607>just, <00:07:53.734>yeah,

166
00:07:55.575 --> 00:07:57.655
<00:07:55.575>you <00:07:55.808>know <00:07:56.041>exactly <00:07:56.275>which <00:07:56.508>service <00:07:56.741>was <00:07:56.974>called.

167
00:07:57.675 --> 00:08:00.415
<00:07:57.675>You <00:07:57.815>can <00:07:57.955>go <00:07:58.095>back <00:07:58.235>and <00:07:58.375>say, <00:07:58.515>Hey, <00:07:58.655>please <00:07:58.795>undo <00:07:58.935>this <00:07:59.075>job.

168
00:08:00.425 --> 00:08:04.575
<00:08:00.425>Everything <00:08:00.552>is <00:08:00.679>fine <00:08:00.806>and <00:08:00.934>event <00:08:01.061>driven, <00:08:01.188>there <00:08:01.315>are <00:08:01.443>ways <00:08:01.570>to <00:08:01.697>do <00:08:01.825>it

169
00:08:04.575 --> 00:08:05.935
<00:08:04.575>but <00:08:05.187>hardly <00:08:05.799>complex.

170
00:08:08.625 --> 00:08:10.085
<00:08:08.625>So <00:08:08.887>the <00:08:09.150>first <00:08:09.413>pattern <00:08:09.676>I <00:08:09.938>want

171
00:08:10.085 --> 00:08:12.285
<00:08:10.085>to <00:08:10.260>show <00:08:10.435>you <00:08:10.609>on <00:08:10.784>event <00:08:10.960>driven <00:08:11.135>is <00:08:11.310>the <00:08:11.484>following.

172
00:08:12.425 --> 00:08:14.325
<00:08:12.425>We <00:08:12.625>have <00:08:12.825>a <00:08:13.025>customer <00:08:13.225>and <00:08:13.425>a <00:08:13.625>contract <00:08:13.825>service

173
00:08:15.465 --> 00:08:18.005
<00:08:15.465>and <00:08:15.640>the <00:08:15.815>customer <00:08:15.989>service <00:08:16.164>sent <00:08:16.340>an <00:08:16.515>address <00:08:16.690>change <00:08:16.864>event.

174
00:08:18.805 --> 00:08:21.405
<00:08:18.805>I <00:08:18.945>as <00:08:19.085>a, <00:08:19.225>as <00:08:19.365>a <00:08:19.505>customer, <00:08:19.645>I <00:08:19.785>said, <00:08:19.925>I, <00:08:20.065>I <00:08:20.205>moved

175
00:08:21.405 --> 00:08:23.725
<00:08:21.405>to <00:08:21.638>another <00:08:21.871>destination, <00:08:22.104>please <00:08:22.338>change <00:08:22.571>my <00:08:22.804>address.

176
00:08:23.975 --> 00:08:25.085
<00:08:23.975>Everything <00:08:24.474>is <00:08:24.974>fine.

177
00:08:25.425 --> 00:08:28.565
<00:08:25.425>And <00:08:25.600>the <00:08:25.775>contract <00:08:25.950>service <00:08:26.125>wants <00:08:26.300>to <00:08:26.475>recalculate <00:08:26.650>some <00:08:26.825>contracts

178
00:08:28.565 --> 00:08:29.765
<00:08:28.565>because <00:08:29.105>they <00:08:29.645>are

179
00:08:29.825 --> 00:08:33.685
<00:08:29.825>for <00:08:29.980>example <00:08:30.136>calculated <00:08:30.291>based <00:08:30.447>on <00:08:30.602>the <00:08:30.758>location <00:08:30.913>where <00:08:31.069>I <00:08:31.224>live.

180
00:08:35.215 --> 00:08:38.195
<00:08:35.215>So <00:08:35.415>what <00:08:35.615>we <00:08:35.815>could <00:08:36.015>send <00:08:36.215>is <00:08:36.415>this <00:08:36.615>data.

181
00:08:38.855 --> 00:08:41.115
<00:08:38.855>We <00:08:39.030>have <00:08:39.205>an <00:08:39.380>event <00:08:39.555>name, <00:08:39.730>a <00:08:39.905>sender <00:08:40.080>created <00:08:40.255>it,

182
00:08:41.225 --> 00:08:42.995
<00:08:41.225>correlation <00:08:41.925>some <00:08:42.625>data

183
00:08:43.455 --> 00:08:46.155
<00:08:43.455>and <00:08:43.595>inside <00:08:43.735>this <00:08:43.875>data <00:08:44.015>section <00:08:44.155>we <00:08:44.295>just <00:08:44.435>have <00:08:44.575>a <00:08:44.715>customer <00:08:44.855>id,

184
00:08:46.965 --> 00:08:49.995
<00:08:46.965>which <00:08:47.165>is <00:08:47.365>totally <00:08:47.565>fine, <00:08:47.765>it's <00:08:47.965>working <00:08:48.165>quite <00:08:48.365>good.

185
00:08:50.735 --> 00:08:52.035
<00:08:50.735>But <00:08:51.125>with <00:08:51.515>this <00:08:51.905>information,

186
00:08:52.595 --> 00:08:55.605
<00:08:52.595>honestly <00:08:52.795>the <00:08:52.995>contract <00:08:53.195>system <00:08:53.395>cannot <00:08:53.595>really <00:08:53.795>make <00:08:53.995>anything

187
00:08:55.675 --> 00:08:57.805
<00:08:55.675>because <00:08:55.954>there's <00:08:56.234>just <00:08:56.515>a <00:08:56.795>customer <00:08:57.074>id.

188
00:08:58.355 --> 00:09:01.285
<00:08:58.355>Okay, <00:08:58.555>but <00:08:58.755>the <00:08:58.955>event <00:08:59.155>is <00:08:59.355>called <00:08:59.555>with <00:08:59.755>changed.

189
00:09:01.425 --> 00:09:04.245
<00:09:01.425>So <00:09:01.599>how <00:09:01.775>does <00:09:01.949>the <00:09:02.125>contract <00:09:02.300>system <00:09:02.474>get <00:09:02.650>the <00:09:02.824>data?

190
00:09:05.675 --> 00:09:10.085
<00:09:05.675>Yeah, <00:09:05.830>by <00:09:05.986>calling <00:09:06.141>via <00:09:06.297>a <00:09:06.452>request <00:09:06.608>the <00:09:06.763>customer <00:09:06.919>system <00:09:07.074>again,

191
00:09:10.825 --> 00:09:15.165
<00:09:10.825>for <00:09:10.952>example <00:09:11.079>get <00:09:11.206>via <00:09:11.334>A <00:09:11.461>GT <00:09:11.588>GTP <00:09:11.715>customer <00:09:11.843>slash <00:09:11.970>five <00:09:12.097>to <00:09:12.225>one

192
00:09:15.585 --> 00:09:18.485
<00:09:15.585>and <00:09:15.725>then <00:09:15.865>the <00:09:16.005>contract <00:09:16.145>system <00:09:16.285>can <00:09:16.425>get <00:09:16.565>this <00:09:16.705>data <00:09:16.845>check <00:09:16.985>if

193
00:09:18.485 --> 00:09:21.125
<00:09:18.485>everything <00:09:18.660>is <00:09:18.835>fine <00:09:19.010>or <00:09:19.185>something <00:09:19.360>needs <00:09:19.535>to <00:09:19.710>be <00:09:19.885>done.

194
00:09:23.275 --> 00:09:25.255
<00:09:23.275>So <00:09:23.555>this <00:09:23.834>is <00:09:24.115>called <00:09:24.395>event <00:09:24.675>notification.

195
00:09:25.515 --> 00:09:29.095
<00:09:25.515>We <00:09:25.670>have <00:09:25.826>a <00:09:25.981>really <00:09:26.137>small <00:09:26.292>event <00:09:26.448>with <00:09:26.603>only <00:09:26.759>simple <00:09:26.915>structure.

196
00:09:30.235 --> 00:09:33.655
<00:09:30.235>Um, <00:09:30.435>most <00:09:30.635>cases <00:09:30.835>it's <00:09:31.035>only <00:09:31.235>GUI <00:09:31.435>for <00:09:31.635>example,

197
00:09:33.715 --> 00:09:35.455
<00:09:33.715>or <00:09:33.915>some <00:09:34.115>other <00:09:34.315>ID <00:09:34.515>which <00:09:34.715>will <00:09:34.915>never <00:09:35.115>change,

198
00:09:36.805 --> 00:09:41.275
<00:09:36.805>which <00:09:36.979>is <00:09:37.155>why <00:09:37.329>event <00:09:37.505>versioning <00:09:37.680>is <00:09:37.854>rarely <00:09:38.030>requiring <00:09:38.204>versioning

199
00:09:41.275 --> 00:09:44.275
<00:09:41.275>because <00:09:41.508>an <00:09:41.741>event <00:09:41.975>will <00:09:42.208>never <00:09:42.441>change <00:09:42.675>probably.

200
00:09:45.455 --> 00:09:47.235
<00:09:45.455>And <00:09:45.805>the <00:09:46.155>components <00:09:46.505>are <00:09:46.855>consistent

201
00:09:47.785 --> 00:09:50.475
<00:09:47.785>because <00:09:48.135>what <00:09:48.485>happened <00:09:48.834>when <00:09:49.185>yeah,

202
00:09:50.475 --> 00:09:53.355
<00:09:50.475>when <00:09:50.675>an <00:09:50.875>address <00:09:51.075>change <00:09:51.275>event <00:09:51.475>happen <00:09:51.675>multiple <00:09:51.875>times,

203
00:09:53.575 --> 00:09:55.795
<00:09:53.575>we <00:09:53.808>will <00:09:54.041>call <00:09:54.275>multiple <00:09:54.508>times <00:09:54.741>the <00:09:54.975>same.

204
00:09:56.415 --> 00:09:58.995
<00:09:56.415>Um, <00:09:56.615>the <00:09:56.814>same <00:09:57.015>sending <00:09:57.214>system <00:09:57.415>we <00:09:57.615>get <00:09:57.814>every

205
00:09:58.995 --> 00:10:00.035
<00:09:58.995>time <00:09:59.229>the <00:09:59.463>exact <00:09:59.697>same <00:09:59.930>data.

206
00:10:00.585 --> 00:10:01.875
<00:10:00.585>Yeah, <00:10:00.972>which <00:10:01.359>is <00:10:01.746>consistent

207
00:10:03.685 --> 00:10:07.065
<00:10:03.685>and <00:10:03.918>all <00:10:04.151>disadvantages <00:10:04.385>has <00:10:04.618>for <00:10:04.851>sure <00:10:05.084>disadvantages.

208
00:10:07.205 --> 00:10:09.785
<00:10:07.205>So <00:10:07.438>event <00:10:07.671>notifications <00:10:07.905>comes <00:10:08.138>at <00:10:08.371>the <00:10:08.605>price

209
00:10:10.525 --> 00:10:13.985
<00:10:10.525>and <00:10:10.641>this <00:10:10.758>price <00:10:10.875>is <00:10:10.991>on <00:10:11.108>the <00:10:11.225>one <00:10:11.341>hand <00:10:11.458>what <00:10:11.574>happened <00:10:11.691>when <00:10:11.808>we <00:10:11.925>have

210
00:10:13.985 --> 00:10:15.105
<00:10:13.985>for <00:10:14.489>example <00:10:14.993>100

211
00:10:15.525 --> 00:10:19.705
<00:10:15.525>or <00:10:15.725>1000 <00:10:15.925>consuming <00:10:16.125>systems <00:10:16.324>in <00:10:16.525>such <00:10:16.725>a <00:10:16.925>case,

212
00:10:19.805 --> 00:10:21.505
<00:10:19.805>all <00:10:20.155>these <00:10:20.505>systems <00:10:20.854>will <00:10:21.204>more

213
00:10:21.505 --> 00:10:23.905
<00:10:21.505>or <00:10:21.680>less <00:10:21.855>immediately <00:10:22.030>start <00:10:22.205>running <00:10:22.380>to <00:10:22.555>the <00:10:22.730>sending <00:10:22.905>system,

214
00:10:24.485 --> 00:10:25.705
<00:10:24.485>ask <00:10:24.759>asks <00:10:25.034>for <00:10:25.308>the <00:10:25.583>data

215
00:10:26.365 --> 00:10:29.865
<00:10:26.365>and <00:10:26.505>yeah, <00:10:26.645>this <00:10:26.785>load <00:10:26.925>could <00:10:27.065>be <00:10:27.205>a <00:10:27.345>problem <00:10:27.485>for <00:10:27.625>ascending <00:10:27.765>system,

216
00:10:30.995 --> 00:10:32.655
<00:10:30.995>not <00:10:31.345>necessarily <00:10:31.695>but <00:10:32.045>could <00:10:32.395>be.

217
00:10:33.475 --> 00:10:36.775
<00:10:33.475>And <00:10:33.615>furthermore, <00:10:33.755>I <00:10:33.895>hope <00:10:34.035>most <00:10:34.175>of <00:10:34.315>you <00:10:34.455>know <00:10:34.595>the <00:10:34.735>cap <00:10:34.875>theor

218
00:10:38.195 --> 00:10:40.655
<00:10:38.195>in <00:10:38.475>a <00:10:38.755>microservice <00:10:39.035>environment <00:10:39.315>we <00:10:39.595>have

219
00:10:40.655 --> 00:10:41.815
<00:10:40.655>partition <00:10:41.177>tolerant <00:10:41.699>system.

220
00:10:42.235 --> 00:10:45.855
<00:10:42.235>So <00:10:42.390>AZA, <00:10:42.546>we <00:10:42.701>can <00:10:42.857>have <00:10:43.012>high <00:10:43.168>consistency <00:10:43.323>or <00:10:43.479>strong <00:10:43.635>consistency

221
00:10:46.235 --> 00:10:47.295
<00:10:46.235>or <00:10:46.712>high <00:10:47.189>availability.

222
00:10:48.195 --> 00:10:51.455
<00:10:48.195>We <00:10:48.311>cannot <00:10:48.428>have <00:10:48.545>all <00:10:48.661>three <00:10:48.778>of <00:10:48.895>them. <00:10:49.011>So <00:10:49.128>it's <00:10:49.245>only <00:10:49.361>two <00:10:49.478>of <00:10:49.595>them.

223
00:10:52.635 --> 00:10:55.095
<00:10:52.635>And <00:10:52.790>as <00:10:52.946>I <00:10:53.101>already <00:10:53.257>said, <00:10:53.412>we <00:10:53.568>have <00:10:53.723>high <00:10:53.879>consistent <00:10:54.035>system

224
00:10:55.395 --> 00:10:58.335
<00:10:55.395>or <00:10:55.535>I <00:10:55.675>would <00:10:55.814>say <00:10:55.954>a <00:10:56.095>more <00:10:56.235>consistent <00:10:56.375>system <00:10:56.515>than <00:10:56.655>a <00:10:56.795>high

225
00:10:58.335 --> 00:11:00.735
<00:10:58.335>available <00:10:58.685>system, <00:10:59.035>which <00:10:59.385>means <00:10:59.735>we

226
00:11:00.735 --> 00:11:01.895
<00:11:00.735>don't <00:11:00.943>have <00:11:01.152>a <00:11:01.361>high <00:11:01.570>available <00:11:01.779>system.

227
00:11:03.035 --> 00:11:06.215
<00:11:03.035>So <00:11:03.190>when <00:11:03.346>you <00:11:03.501>use <00:11:03.657>event <00:11:03.812>notification, <00:11:03.968>which <00:11:04.123>is <00:11:04.279>totally <00:11:04.435>fine,

228
00:11:07.395 --> 00:11:10.055
<00:11:07.395>be <00:11:07.675>aware <00:11:07.954>that <00:11:08.235>one <00:11:08.515>disadvantage <00:11:08.795>is

229
00:11:10.055 --> 00:11:11.735
<00:11:10.055>that <00:11:10.255>you <00:11:10.454>cannot <00:11:10.655>have <00:11:10.854>a <00:11:11.055>high <00:11:11.255>available <00:11:11.454>system

230
00:11:12.395 --> 00:11:14.055
<00:11:12.395>and <00:11:12.595>when <00:11:12.795>you <00:11:12.995>need <00:11:13.194>a <00:11:13.395>high <00:11:13.595>available <00:11:13.795>system,

231
00:11:14.465 --> 00:11:16.135
<00:11:14.465>event <00:11:14.931>notification <00:11:15.398>is <00:11:15.865>probably

232
00:11:16.155 --> 00:11:17.335
<00:11:16.155>not <00:11:16.367>the <00:11:16.579>right <00:11:16.792>solution <00:11:17.004>for <00:11:17.217>you.

233
00:11:19.525 --> 00:11:21.665
<00:11:19.525>But <00:11:19.758>what <00:11:19.991>can <00:11:20.225>we <00:11:20.458>change <00:11:20.691>now <00:11:20.925>instead

234
00:11:21.665 --> 00:11:24.945
<00:11:21.665>of <00:11:21.805>just <00:11:21.944>sending <00:11:22.084>the <00:11:22.224>customer <00:11:22.365>id, <00:11:22.505>we <00:11:22.645>can <00:11:22.785>add <00:11:22.925>more <00:11:23.064>data.

235
00:11:25.125 --> 00:11:27.065
<00:11:25.125>So <00:11:25.325>for <00:11:25.525>example, <00:11:25.725>all <00:11:25.925>data <00:11:26.125>which <00:11:26.325>are <00:11:26.525>needed

236
00:11:27.525 --> 00:11:29.345
<00:11:27.525>for <00:11:27.805>fulfilling <00:11:28.084>this <00:11:28.365>address <00:11:28.645>changed <00:11:28.925>event.

237
00:11:30.085 --> 00:11:32.385
<00:11:30.085>So <00:11:30.240>what <00:11:30.396>we <00:11:30.551>can <00:11:30.707>do <00:11:30.862>is <00:11:31.018>adding <00:11:31.173>an <00:11:31.329>old <00:11:31.485>address

238
00:11:32.405 --> 00:11:35.985
<00:11:32.405>and <00:11:32.545>the <00:11:32.685>new <00:11:32.824>address <00:11:32.964>and <00:11:33.105>now <00:11:33.245>the <00:11:33.385>contract <00:11:33.525>system <00:11:33.665>doesn't <00:11:33.805>need

239
00:11:36.005 --> 00:11:39.545
<00:11:36.005>any <00:11:36.205>requests <00:11:36.405>to <00:11:36.605>the <00:11:36.805>customer <00:11:37.005>service, <00:11:37.205>whatever <00:11:37.405>they,

240
00:11:39.805 --> 00:11:42.985
<00:11:39.805>the <00:11:39.960>contract <00:11:40.116>system <00:11:40.271>can <00:11:40.427>just <00:11:40.582>start <00:11:40.738>with <00:11:40.893>fulfilling <00:11:41.049>this <00:11:41.204>job,

241
00:11:43.745 --> 00:11:45.105
<00:11:43.745>changing <00:11:44.051>the <00:11:44.357>address <00:11:44.663>to <00:11:44.969>second

242
00:11:45.105 --> 00:11:46.345
<00:11:45.105>street <00:11:45.384>instead <00:11:45.663>of <00:11:45.942>main <00:11:46.221>Street.

243
00:11:49.585 --> 00:11:52.885
<00:11:49.585>But <00:11:49.818>probably <00:11:50.051>he <00:11:50.285>has <00:11:50.518>some <00:11:50.751>advantages <00:11:50.985>and

244
00:11:53.445 --> 00:11:55.185
<00:11:53.445>and <00:11:53.678>event <00:11:53.911>case <00:11:54.145>et <00:11:54.378>transfer, <00:11:54.611>this <00:11:54.845>is

245
00:11:55.185 --> 00:11:57.945
<00:11:55.185>how <00:11:55.359>the <00:11:55.535>pattern <00:11:55.709>is <00:11:55.885>called, <00:11:56.060>provides <00:11:56.234>the <00:11:56.410>entire <00:11:56.584>status

246
00:11:58.165 --> 00:12:00.305
<00:11:58.165>as <00:11:58.320>you <00:11:58.476>see <00:11:58.631>we <00:11:58.787>have <00:11:58.942>the <00:11:59.098>new <00:11:59.253>address, <00:11:59.409>old <00:11:59.564>address

247
00:12:00.405 --> 00:12:02.625
<00:12:00.405>and <00:12:00.579>for <00:12:00.755>example, <00:12:00.930>when <00:12:01.105>we <00:12:01.280>have <00:12:01.454>a <00:12:01.630>customer <00:12:01.805>object,

248
00:12:02.625 --> 00:12:03.985
<00:12:02.625>it <00:12:02.799>could <00:12:02.974>be <00:12:03.149>a <00:12:03.324>bigger <00:12:03.499>object <00:12:03.674>for <00:12:03.849>sure.

249
00:12:05.585 --> 00:12:07.245
<00:12:05.585>The <00:12:05.935>components <00:12:06.285>are <00:12:06.635>highly <00:12:06.985>decoupled

250
00:12:07.245 --> 00:12:11.125
<00:12:07.245>because <00:12:07.400>we <00:12:07.556>now <00:12:07.711>don't <00:12:07.867>need <00:12:08.022>any <00:12:08.178>requests <00:12:08.333>to <00:12:08.489>other <00:12:08.645>systems.

251
00:12:11.395 --> 00:12:13.845
<00:12:11.395>When <00:12:11.569>we <00:12:11.745>have <00:12:11.920>1 <00:12:12.095>million <00:12:12.270>systems <00:12:12.444>consuming <00:12:12.620>an <00:12:12.795>event,

252
00:12:14.275 --> 00:12:15.285
<00:12:14.275>yeah, <00:12:14.502>we <00:12:14.729>just <00:12:14.956>don't <00:12:15.184>care.

253
00:12:15.385 --> 00:12:18.845
<00:12:15.385>We <00:12:15.540>don't <00:12:15.696>need <00:12:15.851>to, <00:12:16.007>yeah, <00:12:16.162>make <00:12:16.318>the <00:12:16.473>sending <00:12:16.629>system <00:12:16.785>scalable

254
00:12:18.845 --> 00:12:20.685
<00:12:18.845>because <00:12:19.125>there's <00:12:19.405>no <00:12:19.685>need <00:12:19.965>for <00:12:20.245>this.

255
00:12:22.235 --> 00:12:23.415
<00:12:22.235>And <00:12:22.589>from <00:12:22.943>my <00:12:23.297>perspective,

256
00:12:23.745 --> 00:12:26.535
<00:12:23.745>event <00:12:23.945>carried <00:12:24.145>state <00:12:24.345>transfers <00:12:24.545>contributes <00:12:24.745>to <00:12:24.945>uh, <00:12:25.145>autonomy

257
00:12:26.645 --> 00:12:31.575
<00:12:26.645>because <00:12:26.819>at <00:12:26.995>the <00:12:27.170>end <00:12:27.345>we <00:12:27.520>have <00:12:27.694>only <00:12:27.870>the <00:12:28.045>dependencies

258
00:12:31.575 --> 00:12:33.935
<00:12:31.575>to <00:12:31.775>our <00:12:31.975>own <00:12:32.175>system, <00:12:32.375>to <00:12:32.575>our <00:12:32.775>own <00:12:32.975>microservice,

259
00:12:34.025 --> 00:12:35.935
<00:12:34.025>maybe <00:12:34.258>a <00:12:34.491>database, <00:12:34.725>maybe <00:12:34.958>a <00:12:35.191>microphone <00:12:35.425>and

260
00:12:35.935 --> 00:12:38.535
<00:12:35.935>but <00:12:36.214>no <00:12:36.494>dependencies <00:12:36.775>to <00:12:37.055>other <00:12:37.334>systems.

261
00:12:40.565 --> 00:12:42.185
<00:12:40.565>But <00:12:40.845>maybe <00:12:41.125>you <00:12:41.405>know <00:12:41.685>it <00:12:41.965>already,

262
00:12:42.775 --> 00:12:44.705
<00:12:42.775>they <00:12:42.930>come <00:12:43.086>at <00:12:43.241>a <00:12:43.397>price <00:12:43.552>they <00:12:43.708>are <00:12:43.863>not <00:12:44.019>for <00:12:44.175>free

263
00:12:45.045 --> 00:12:46.865
<00:12:45.045>and <00:12:45.324>bank <00:12:45.604>can <00:12:45.885>state <00:12:46.165>event <00:12:46.444>carried.

264
00:12:46.875 --> 00:12:50.145
<00:12:46.875>State <00:12:47.155>transfers, <00:12:47.435>yeah, <00:12:47.715>have <00:12:47.995>some <00:12:48.275>disadvantages.

265
00:12:50.365 --> 00:12:51.585
<00:12:50.365>For <00:12:50.914>example, <00:12:51.463>versioning.

266
00:12:51.655 --> 00:12:55.465
<00:12:51.655>What <00:12:51.829>do <00:12:52.005>you <00:12:52.180>do <00:12:52.355>when <00:12:52.530>you <00:12:52.704>change <00:12:52.880>the <00:12:53.055>street?

267
00:12:55.815 --> 00:12:58.945
<00:12:55.815>Doesn't <00:12:55.990>make <00:12:56.165>sense, <00:12:56.340>but <00:12:56.515>when <00:12:56.690>you <00:12:56.865>change <00:12:57.040>the <00:12:57.215>type

268
00:12:58.945 --> 00:13:01.985
<00:12:58.945>of <00:12:59.120>your <00:12:59.295>property, <00:12:59.470>maybe <00:12:59.645>street, <00:12:59.820>maybe <00:12:59.995>house <00:13:00.170>number <00:13:00.345>instead

269
00:13:01.985 --> 00:13:03.505
<00:13:01.985>of <00:13:02.180>it's <00:13:02.375>a <00:13:02.571>number, <00:13:02.766>it's <00:13:02.962>now <00:13:03.157>a <00:13:03.353>string.

270
00:13:04.125 --> 00:13:05.745
<00:13:04.125>In <00:13:04.300>such <00:13:04.475>a <00:13:04.650>case <00:13:04.825>you <00:13:05.000>have <00:13:05.175>a <00:13:05.350>new <00:13:05.525>version

271
00:13:06.485 --> 00:13:07.665
<00:13:06.485>and <00:13:06.750>this <00:13:07.016>new <00:13:07.281>version <00:13:07.547>needs

272
00:13:07.665 --> 00:13:09.385
<00:13:07.665>to <00:13:07.944>be <00:13:08.224>consumed <00:13:08.505>by <00:13:08.785>different <00:13:09.064>systems.

273
00:13:09.565 --> 00:13:10.825
<00:13:09.565>So <00:13:09.791>maybe <00:13:10.018>you <00:13:10.245>have <00:13:10.472>version <00:13:10.699>one

274
00:13:10.825 --> 00:13:14.825
<00:13:10.825>and <00:13:10.980>version <00:13:11.136>two, <00:13:11.291>some <00:13:11.447>systems <00:13:11.602>all <00:13:11.758>um, <00:13:11.913>some <00:13:12.069>systems <00:13:12.225>still

275
00:13:15.535 --> 00:13:17.545
<00:13:15.535>uses <00:13:15.814>version <00:13:16.094>one, <00:13:16.375>some <00:13:16.655>version <00:13:16.935>two.

276
00:13:18.655 --> 00:13:21.505
<00:13:18.655>This <00:13:18.795>is <00:13:18.935>a <00:13:19.074>complexity <00:13:19.214>you <00:13:19.355>honestly <00:13:19.495>don't <00:13:19.635>want <00:13:19.775>in <00:13:19.915>your <00:13:20.055>system

277
00:13:21.655 --> 00:13:23.785
<00:13:21.655>when <00:13:21.855>you <00:13:22.055>don't <00:13:22.255>need <00:13:22.454>even <00:13:22.655>code <00:13:22.855>state <00:13:23.055>transfers

278
00:13:26.125 --> 00:13:31.105
<00:13:26.125>and <00:13:26.280>as <00:13:26.436>well <00:13:26.591>again <00:13:26.747>cap <00:13:26.902>serum, <00:13:27.058>we <00:13:27.213>cannot <00:13:27.369>have <00:13:27.525>consistency

279
00:13:31.105 --> 00:13:32.785
<00:13:31.105>and <00:13:31.805>availability, <00:13:32.505>but

280
00:13:32.785 --> 00:13:35.345
<00:13:32.785>because <00:13:32.959>we <00:13:33.135>don't <00:13:33.310>need <00:13:33.485>to <00:13:33.660>call <00:13:33.834>a <00:13:34.010>sending <00:13:34.185>system,

281
00:13:36.365 --> 00:13:40.425
<00:13:36.365>we <00:13:36.520>have <00:13:36.676>a <00:13:36.831>higher <00:13:36.987>available <00:13:37.142>system, <00:13:37.298>not <00:13:37.453>a <00:13:37.609>high <00:13:37.765>availability

282
00:13:40.845 --> 00:13:42.545
<00:13:40.845>and <00:13:41.125>there <00:13:41.405>is <00:13:41.685>no <00:13:41.965>eventual <00:13:42.245>consistency,

283
00:13:42.565 --> 00:13:47.545
<00:13:42.565>but <00:13:42.740>we <00:13:42.915>have <00:13:43.090>focus <00:13:43.265>on <00:13:43.440>availability <00:13:43.615>instead <00:13:43.790>of <00:13:43.965>consistency.

284
00:13:49.345 --> 00:13:51.445
<00:13:49.345>So <00:13:49.520>from <00:13:49.695>this <00:13:49.870>perspective, <00:13:50.045>when <00:13:50.220>you <00:13:50.395>have <00:13:50.570>a <00:13:50.745>look,

285
00:13:51.735 --> 00:13:55.285
<00:13:51.735>autonomous <00:13:52.015>microservices <00:13:52.295>are <00:13:52.575>not <00:13:52.855>directly <00:13:53.135>autonomous

286
00:13:55.285 --> 00:13:57.485
<00:13:55.285>because <00:13:55.518>you <00:13:55.751>are <00:13:55.985>using <00:13:56.218>event <00:13:56.451>driven, <00:13:56.685>it's

287
00:13:57.485 --> 00:14:00.925
<00:13:57.485>because <00:13:57.685>you're <00:13:57.885>using <00:13:58.085>an <00:13:58.285>exact <00:13:58.485>event <00:13:58.685>driven <00:13:58.885>pattern.

288
00:14:01.145 --> 00:14:03.165
<00:14:01.145>In <00:14:01.378>this <00:14:01.611>case <00:14:01.845>event <00:14:02.078>carried <00:14:02.311>state <00:14:02.545>transfers.

289
00:14:04.425 --> 00:14:06.085
<00:14:04.425>And <00:14:04.658>on <00:14:04.891>the <00:14:05.125>other <00:14:05.358>side <00:14:05.591>it <00:14:05.824>means

290
00:14:06.085 --> 00:14:08.405
<00:14:06.085>that <00:14:06.365>an <00:14:06.645>autonomous <00:14:06.925>microservice <00:14:07.205>system <00:14:07.485>cannot

291
00:14:08.545 --> 00:14:09.685
<00:14:08.545>be <00:14:09.058>high <00:14:09.570>consistent.

292
00:14:09.785 --> 00:14:12.165
<00:14:09.785>So <00:14:09.985>it <00:14:10.185>has, <00:14:10.385>so <00:14:10.584>it <00:14:10.785>has <00:14:10.985>weaker <00:14:11.185>consistency.

293
00:14:14.735 --> 00:14:17.305
<00:14:14.735>Furthermore, <00:14:14.935>when <00:14:15.135>you <00:14:15.335>have <00:14:15.535>event <00:14:15.735>carried, <00:14:15.935>set <00:14:16.135>transfers,

294
00:14:17.355 --> 00:14:20.505
<00:14:17.355>there <00:14:17.495>are <00:14:17.635>multiple <00:14:17.775>more <00:14:17.915>advantages <00:14:18.055>I <00:14:18.195>want <00:14:18.335>to <00:14:18.475>show <00:14:18.615>you <00:14:18.755>now.

295
00:14:21.245 --> 00:14:22.305
<00:14:21.245>So <00:14:21.435>have <00:14:21.626>a <00:14:21.817>look <00:14:22.008>to <00:14:22.199>these.

296
00:14:22.815 --> 00:14:24.745
<00:14:22.815>Yeah, <00:14:23.048>it <00:14:23.281>doesn't <00:14:23.515>look <00:14:23.748>like <00:14:23.981>a <00:14:24.215>database

297
00:14:24.845 --> 00:14:26.385
<00:14:24.845>but <00:14:25.122>it <00:14:25.399>should <00:14:25.676>be <00:14:25.953>a <00:14:26.231>database.

298
00:14:27.005 --> 00:14:30.425
<00:14:27.005>So <00:14:27.132>we <00:14:27.259>have <00:14:27.386>a <00:14:27.514>shopping <00:14:27.641>cart <00:14:27.768>with <00:14:27.895>an <00:14:28.023>id, <00:14:28.150>a <00:14:28.277>user <00:14:28.405>product.

299
00:14:31.325 --> 00:14:32.585
<00:14:31.325>And <00:14:31.703>now <00:14:32.081>what <00:14:32.459>happened?

300
00:14:33.465 --> 00:14:35.565
<00:14:33.465>We <00:14:33.605>had <00:14:33.745>a <00:14:33.885>new <00:14:34.025>shopping <00:14:34.165>cart, <00:14:34.305>there's <00:14:34.445>a <00:14:34.585>new <00:14:34.725>user <00:14:34.865>coming

301
00:14:35.565 --> 00:14:37.325
<00:14:35.565>to <00:14:35.740>our <00:14:35.915>online <00:14:36.090>shop <00:14:36.265>and <00:14:36.440>then <00:14:36.615>we <00:14:36.790>create <00:14:36.965>a

302
00:14:37.325 --> 00:14:38.605
<00:14:37.325>new <00:14:37.613>shopping <00:14:37.901>cart <00:14:38.189>for <00:14:38.477>him.

303
00:14:39.505 --> 00:14:41.805
<00:14:39.505>And <00:14:39.680>after <00:14:39.855>some <00:14:40.030>time <00:14:40.205>he <00:14:40.380>had <00:14:40.555>some <00:14:40.730>new <00:14:40.905>products,

304
00:14:41.905 --> 00:14:43.685
<00:14:41.905>he <00:14:42.255>removed <00:14:42.605>some <00:14:42.954>products, <00:14:43.305>uh,

305
00:14:43.685 --> 00:14:45.045
<00:14:43.685>something <00:14:43.991>changed <00:14:44.296>in <00:14:44.603>other <00:14:44.909>shopping

306
00:14:45.055 --> 00:14:46.285
<00:14:45.055>carts, <00:14:45.331>et <00:14:45.608>cetera, <00:14:45.885>et <00:14:46.161>cetera.

307
00:14:47.425 --> 00:14:49.405
<00:14:47.425>And <00:14:47.599>as <00:14:47.775>you <00:14:47.949>see, <00:14:48.125>it's <00:14:48.300>only <00:14:48.474>the <00:14:48.650>current <00:14:48.824>state,

308
00:14:49.675 --> 00:14:50.925
<00:14:49.675>it's <00:14:50.050>never <00:14:50.425>the <00:14:50.800>history.

309
00:14:51.035 --> 00:14:52.365
<00:14:51.035>What <00:14:51.434>changed <00:14:51.833>over <00:14:52.232>time?

310
00:14:53.755 --> 00:14:54.935
<00:14:53.755>And <00:14:53.967>now <00:14:54.179>I <00:14:54.392>have <00:14:54.604>some <00:14:54.817>questions,

311
00:14:54.935 --> 00:14:56.255
<00:14:54.935>maybe <00:14:55.132>you <00:14:55.330>can <00:14:55.529>answer <00:14:55.727>it, <00:14:55.925>maybe <00:14:56.123>not.

312
00:14:56.915 --> 00:14:59.055
<00:14:56.915>How <00:14:57.115>many <00:14:57.314>shopping <00:14:57.515>carts <00:14:57.714>are <00:14:57.915>currently <00:14:58.115>being <00:14:58.314>processed?

313
00:14:59.735 --> 00:15:02.695
<00:14:59.735>I <00:14:59.862>mean <00:14:59.989>it's <00:15:00.116>quite <00:15:00.244>easy. <00:15:00.371>We <00:15:00.498>just <00:15:00.625>counted <00:15:00.753>it's <00:15:00.880>too <00:15:01.007>no <00:15:01.135>big

314
00:15:02.695 --> 00:15:04.495
<00:15:02.695>deal <00:15:03.395>as <00:15:04.095>well.

315
00:15:04.495 --> 00:15:06.175
<00:15:04.495>The <00:15:04.695>question, <00:15:04.895>which <00:15:05.095>products <00:15:05.295>are <00:15:05.495>in <00:15:05.695>the <00:15:05.895>shopping

316
00:15:06.185 --> 00:15:07.295
<00:15:06.185>carts <00:15:06.684>as <00:15:07.184>well?

317
00:15:07.295 --> 00:15:08.495
<00:15:07.295>We <00:15:07.511>can <00:15:07.727>just <00:15:07.943>make <00:15:08.159>a <00:15:08.375>query.

318
00:15:08.595 --> 00:15:11.295
<00:15:08.595>For <00:15:08.735>example, <00:15:08.875>we, <00:15:09.015>we <00:15:09.155>see <00:15:09.295>everything. <00:15:09.435>It's <00:15:09.575>not <00:15:09.715>a <00:15:09.855>big <00:15:09.995>deal.

319
00:15:12.195 --> 00:15:15.805
<00:15:12.195>It's <00:15:12.322>the <00:15:12.449>same <00:15:12.576>for <00:15:12.704>how <00:15:12.831>often <00:15:12.958>this <00:15:13.085>product <00:15:13.213>222 <00:15:13.340>in <00:15:13.467>the <00:15:13.595>shopping

320
00:15:15.855 --> 00:15:17.245
<00:15:15.855>carts <00:15:16.480>as <00:15:17.106>well.

321
00:15:17.285 --> 00:15:18.405
<00:15:17.285>A <00:15:17.536>question <00:15:17.789>we <00:15:18.040>can <00:15:18.293>answer,

322
00:15:19.025 --> 00:15:22.205
<00:15:19.025>but <00:15:19.199>some <00:15:19.375>questions <00:15:19.550>when <00:15:19.725>we <00:15:19.900>only <00:15:20.074>store <00:15:20.250>the <00:15:20.425>current

323
00:15:22.205 --> 00:15:23.405
<00:15:22.205>state, <00:15:22.565>we <00:15:22.925>cannot <00:15:23.285>answer.

324
00:15:23.625 --> 00:15:25.045
<00:15:23.625>And <00:15:23.838>this <00:15:24.050>is <00:15:24.264>for <00:15:24.477>example, <00:15:24.689>the <00:15:24.903>following.

325
00:15:25.905 --> 00:15:28.965
<00:15:25.905>How <00:15:26.138>often <00:15:26.371>has <00:15:26.605>product <00:15:26.838>789 <00:15:27.071>been <00:15:27.305>removed

326
00:15:29.035 --> 00:15:30.085
<00:15:29.035>from <00:15:29.350>the <00:15:29.665>shopping <00:15:29.980>carts?

327
00:15:30.865 --> 00:15:34.005
<00:15:30.865>And <00:15:30.992>when <00:15:31.119>you <00:15:31.246>now <00:15:31.374>had <00:15:31.501>a <00:15:31.628>look, <00:15:31.755>then <00:15:31.883>maybe <00:15:32.010>you <00:15:32.137>know <00:15:32.265>it.

328
00:15:34.185 --> 00:15:36.205
<00:15:34.185>But <00:15:34.324>when <00:15:34.464>you <00:15:34.604>just <00:15:34.744>have <00:15:34.885>a <00:15:35.025>look <00:15:35.165>to <00:15:35.305>the <00:15:35.444>current <00:15:35.584>state,

329
00:15:36.205 --> 00:15:37.365
<00:15:36.205>you <00:15:36.466>cannot <00:15:36.727>answer <00:15:36.988>this <00:15:37.249>question.

330
00:15:39.245 --> 00:15:41.345
<00:15:39.245>And <00:15:39.400>this <00:15:39.556>is <00:15:39.711>something <00:15:39.867>we <00:15:40.022>can <00:15:40.178>change <00:15:40.333>by <00:15:40.489>using <00:15:40.645>events.

331
00:15:41.605 --> 00:15:44.505
<00:15:41.605>And <00:15:41.745>when <00:15:41.885>we <00:15:42.025>store <00:15:42.165>these <00:15:42.305>events <00:15:42.445>in <00:15:42.585>the <00:15:42.725>so-called <00:15:42.865>event <00:15:43.005>store.

332
00:15:46.285 --> 00:15:48.225
<00:15:46.285>So <00:15:46.485>what <00:15:46.685>we <00:15:46.885>have <00:15:47.084>is <00:15:47.285>an <00:15:47.485>event <00:15:47.685>store.

333
00:15:49.045 --> 00:15:52.305
<00:15:49.045>Uh, <00:15:49.185>it's <00:15:49.324>basically <00:15:49.464>just <00:15:49.604>we <00:15:49.745>store <00:15:49.885>all <00:15:50.025>our <00:15:50.165>events <00:15:50.305>the <00:15:50.444>event

334
00:15:52.305 --> 00:15:54.785
<00:15:52.305>broker <00:15:52.460>processed <00:15:52.616>in <00:15:52.771>a, <00:15:52.927>in <00:15:53.082>a <00:15:53.238>store <00:15:53.393>which <00:15:53.549>is <00:15:53.704>growing

335
00:15:54.805 --> 00:15:58.345
<00:15:54.805>and <00:15:54.979>growing <00:15:55.155>and <00:15:55.329>then <00:15:55.505>this <00:15:55.680>could <00:15:55.854>be <00:15:56.030>some <00:15:56.204>snippet.

336
00:15:58.565 --> 00:16:02.535
<00:15:58.565>We <00:15:58.720>have <00:15:58.876>shopping <00:15:59.031>cart <00:15:59.187>created, <00:15:59.342>then <00:15:59.498>we <00:15:59.653>have <00:15:59.809>product <00:15:59.965>added

337
00:16:02.555 --> 00:16:05.655
<00:16:02.555>to <00:16:02.710>the <00:16:02.866>shopping <00:16:03.021>cart, <00:16:03.177>we <00:16:03.332>have <00:16:03.488>product <00:16:03.643>shopping <00:16:03.799>product <00:16:03.954>added

338
00:16:05.655 --> 00:16:08.495
<00:16:05.655>to <00:16:05.855>the <00:16:06.055>shopping <00:16:06.255>cart, <00:16:06.454>product <00:16:06.655>removed, <00:16:06.855>product <00:16:07.055>edit,

339
00:16:08.495 --> 00:16:10.215
<00:16:08.495>product <00:16:08.845>removed <00:16:09.195>and <00:16:09.545>so <00:16:09.895>on.

340
00:16:11.475 --> 00:16:12.895
<00:16:11.475>And <00:16:11.730>this <00:16:11.986>is <00:16:12.241>what <00:16:12.497>we <00:16:12.752>store.

341
00:16:12.915 --> 00:16:15.975
<00:16:12.915>We <00:16:13.070>don't <00:16:13.226>store <00:16:13.381>exactly <00:16:13.537>more <00:16:13.692>data, <00:16:13.848>it's <00:16:14.003>just <00:16:14.159>the <00:16:14.314>event.

342
00:16:17.295 --> 00:16:19.915
<00:16:17.295>And <00:16:17.450>as <00:16:17.606>well, <00:16:17.761>we <00:16:17.917>can <00:16:18.072>have <00:16:18.228>questions <00:16:18.383>like <00:16:18.539>how <00:16:18.694>many

343
00:16:20.435 --> 00:16:21.395
<00:16:20.435>shopping <00:16:20.651>carts <00:16:20.867>are <00:16:21.083>currently <00:16:21.299>being

344
00:16:21.395 --> 00:16:23.035
<00:16:21.395>processed <00:16:21.861>from <00:16:22.328>this <00:16:22.795>snippet?

345
00:16:23.035 --> 00:16:25.795
<00:16:23.035>We <00:16:23.175>know <00:16:23.314>there <00:16:23.454>are <00:16:23.594>two, <00:16:23.735>could <00:16:23.875>be <00:16:24.015>more, <00:16:24.155>could <00:16:24.295>be <00:16:24.435>less,

346
00:16:25.815 --> 00:16:27.955
<00:16:25.815>but <00:16:26.048>no <00:16:26.281>less <00:16:26.515>not <00:16:26.748>could <00:16:26.981>be <00:16:27.215>more.

347
00:16:28.215 --> 00:16:29.955
<00:16:28.215>But <00:16:28.495>from <00:16:28.775>this <00:16:29.055>snippet <00:16:29.335>it's <00:16:29.615>two.

348
00:16:31.615 --> 00:16:33.795
<00:16:31.615>We <00:16:31.848>can <00:16:32.081>as <00:16:32.315>well <00:16:32.548>answer <00:16:32.781>the <00:16:33.015>question,

349
00:16:33.885 --> 00:16:35.555
<00:16:33.885>which <00:16:34.118>products <00:16:34.351>are <00:16:34.585>in <00:16:34.818>the <00:16:35.051>shopping <00:16:35.285>carts

350
00:16:36.095 --> 00:16:37.515
<00:16:36.095>and <00:16:36.350>maybe <00:16:36.606>you <00:16:36.861>already <00:16:37.117>see <00:16:37.373>it.

351
00:16:37.515 --> 00:16:39.435
<00:16:37.515>It's <00:16:37.670>a <00:16:37.826>little <00:16:37.981>bit <00:16:38.137>harder <00:16:38.292>for <00:16:38.448>us <00:16:38.603>as <00:16:38.759>a <00:16:38.915>human

352
00:16:40.055 --> 00:16:42.075
<00:16:40.055>to <00:16:40.229>find <00:16:40.405>the <00:16:40.579>solution, <00:16:40.755>but <00:16:40.930>we <00:16:41.104>can <00:16:41.280>do <00:16:41.454>it.

353
00:16:43.335 --> 00:16:45.595
<00:16:43.335>And <00:16:43.510>exactly <00:16:43.685>this <00:16:43.860>is <00:16:44.035>the <00:16:44.210>same <00:16:44.385>for <00:16:44.560>the <00:16:44.735>product.

354
00:16:45.705 --> 00:16:48.555
<00:16:45.705>When <00:16:45.860>you <00:16:46.016>use <00:16:46.171>event <00:16:46.327>store, <00:16:46.482>it's <00:16:46.638>a <00:16:46.793>little <00:16:46.949>bit <00:16:47.105>harder

355
00:16:48.975 --> 00:16:51.795
<00:16:48.975>or <00:16:49.150>more <00:16:49.325>complex <00:16:49.500>to <00:16:49.675>fulfill <00:16:49.850>this <00:16:50.025>job <00:16:50.200>you <00:16:50.375>need.

356
00:16:51.945 --> 00:16:53.155
<00:16:51.945>Yeah, <00:16:53.034>more

357
00:16:53.495 --> 00:16:56.835
<00:16:53.495>or <00:16:53.602>it's <00:16:53.710>not <00:16:53.818>that <00:16:53.925>easy <00:16:54.033>just <00:16:54.141>using <00:16:54.248>a <00:16:54.356>little <00:16:54.464>bit <00:16:54.571>SQL <00:16:54.679>and <00:16:54.787>it's <00:16:54.895>working.

358
00:16:56.895 --> 00:17:00.355
<00:16:56.895>You <00:16:57.022>need <00:16:57.149>a <00:16:57.276>little <00:16:57.404>bit <00:16:57.531>more, <00:16:57.658>but <00:16:57.785>we <00:16:57.913>can <00:16:58.040>answer <00:16:58.167>this <00:16:58.295>question

359
00:17:00.655 --> 00:17:02.035
<00:17:00.655>as <00:17:00.862>well <00:17:01.069>for <00:17:01.276>how <00:17:01.483>often <00:17:01.689>this <00:17:01.896>product

360
00:17:02.215 --> 00:17:03.995
<00:17:02.215>222 <00:17:02.565>in <00:17:02.915>the <00:17:03.265>shopping <00:17:03.615>carts.

361
00:17:04.975 --> 00:17:07.795
<00:17:04.974>And <00:17:05.175>now <00:17:05.375>the <00:17:05.574>question <00:17:05.774>from <00:17:05.974>the <00:17:06.175>previous <00:17:06.375>page,

362
00:17:08.135 --> 00:17:10.275
<00:17:08.135>how <00:17:08.335>often <00:17:08.535>has <00:17:08.734>product <00:17:08.935>7, <00:17:09.135>8, <00:17:09.335>9 <00:17:09.535>been

363
00:17:10.275 --> 00:17:11.435
<00:17:10.275>removed <00:17:10.623>from <00:17:10.971>shopping <00:17:11.319>carts?

364
00:17:12.185 --> 00:17:13.875
<00:17:12.185>This <00:17:12.385>is <00:17:12.585>a <00:17:12.784>question <00:17:12.984>we <00:17:13.185>can <00:17:13.385>now <00:17:13.585>answer

365
00:17:14.105 --> 00:17:16.075
<00:17:14.105>because <00:17:14.385>we <00:17:14.665>stored <00:17:14.944>the <00:17:15.224>whole <00:17:15.505>history

366
00:17:16.375 --> 00:17:19.075
<00:17:16.375>and <00:17:16.530>we <00:17:16.686>know <00:17:16.841>what <00:17:16.997>happened <00:17:17.152>for <00:17:17.308>a <00:17:17.463>single <00:17:17.619>shopping <00:17:17.775>cart.

367
00:17:19.775 --> 00:17:23.315
<00:17:19.775>And <00:17:19.915>here <00:17:20.055>we <00:17:20.195>can <00:17:20.335>see <00:17:20.475>this <00:17:20.615>product <00:17:20.755>was <00:17:20.895>removed <00:17:21.035>two <00:17:21.175>times

368
00:17:24.905 --> 00:17:29.645
<00:17:24.905>and <00:17:25.045>maybe <00:17:25.185>when <00:17:25.325>we <00:17:25.464>do <00:17:25.605>some <00:17:25.744>analytics, <00:17:25.885>we <00:17:26.024>see <00:17:26.165>that <00:17:26.305>most

369
00:17:29.745 --> 00:17:33.765
<00:17:29.745>of <00:17:29.900>the <00:17:30.056>time <00:17:30.211>when <00:17:30.367>product <00:17:30.522>789 <00:17:30.678>is <00:17:30.833>removed, <00:17:30.989>for <00:17:31.145>example,

370
00:17:33.765 --> 00:17:38.405
<00:17:33.765>product <00:17:33.920>120 <00:17:34.076>is <00:17:34.231>added, <00:17:34.387>which <00:17:34.542>can <00:17:34.698>lead <00:17:34.853>us <00:17:35.009>to <00:17:35.165>the,

371
00:17:39.555 --> 00:17:43.955
<00:17:39.555>that <00:17:39.730>we <00:17:39.905>think <00:17:40.080>maybe <00:17:40.255>product <00:17:40.430>789 <00:17:40.605>has <00:17:40.780>bad <00:17:40.955>recommendations

372
00:17:44.015 --> 00:17:47.075
<00:17:44.015>or <00:17:44.170>is <00:17:44.326>uh, <00:17:44.481>yeah, <00:17:44.637>it's <00:17:44.792>not <00:17:44.948>cheap <00:17:45.103>enough <00:17:45.259>or <00:17:45.415>whatever.

373
00:17:47.295 --> 00:17:50.085
<00:17:47.295>And <00:17:47.470>we <00:17:47.645>compare <00:17:47.820>it <00:17:47.995>with <00:17:48.170>other, <00:17:48.345>with <00:17:48.520>another <00:17:48.695>product

374
00:17:50.585 --> 00:17:52.605
<00:17:50.585>and <00:17:50.785>maybe <00:17:50.985>we <00:17:51.185>find <00:17:51.385>some <00:17:51.585>solutions <00:17:51.785>to, <00:17:51.985>yeah,

375
00:17:52.605 --> 00:17:53.725
<00:17:52.605>make <00:17:52.941>our <00:17:53.277>products <00:17:53.612>better.

376
00:17:54.975 --> 00:17:58.035
<00:17:54.975>So <00:17:55.091>at <00:17:55.208>the <00:17:55.324>end <00:17:55.441>with <00:17:55.558>storing <00:17:55.675>all <00:17:55.791>your <00:17:55.908>events <00:17:56.024>in <00:17:56.141>an <00:17:56.258>event <00:17:56.375>store

377
00:17:58.685 --> 00:18:00.595
<00:17:58.685>makes <00:17:59.385>you <00:18:00.085>more

378
00:18:00.895 --> 00:18:02.315
<00:18:00.895>or <00:18:01.214>you <00:18:01.534>have <00:18:01.853>more <00:18:02.173>possibilities

379
00:18:02.775 --> 00:18:05.795
<00:18:02.775>to <00:18:02.950>answer <00:18:03.125>questions <00:18:03.300>you <00:18:03.475>don't <00:18:03.650>know <00:18:03.825>at <00:18:04.000>the <00:18:04.175>beginning.

380
00:18:08.535 --> 00:18:11.275
<00:18:08.535>But <00:18:08.768>there <00:18:09.001>are <00:18:09.235>other <00:18:09.468>advantages <00:18:09.701>as <00:18:09.935>well.

381
00:18:12.525 --> 00:18:14.595
<00:18:12.525>Again, <00:18:12.700>you <00:18:12.875>have <00:18:13.050>a <00:18:13.225>customer <00:18:13.400>in <00:18:13.575>the <00:18:13.750>contract <00:18:13.925>system

382
00:18:14.935 --> 00:18:18.355
<00:18:14.935>and <00:18:15.110>now <00:18:15.284>yeah, <00:18:15.460>you <00:18:15.635>start <00:18:15.810>using <00:18:15.985>your <00:18:16.159>customer <00:18:16.335>system.

383
00:18:19.135 --> 00:18:22.275
<00:18:19.135>We <00:18:19.335>have <00:18:19.535>John <00:18:19.735>Doe <00:18:19.935>who <00:18:20.135>has <00:18:20.335>created <00:18:20.535>a,

384
00:18:23.055 --> 00:18:24.115
<00:18:23.055>an <00:18:23.293>account <00:18:23.532>in <00:18:23.770>your <00:18:24.009>system

385
00:18:24.335 --> 00:18:27.275
<00:18:24.335>and <00:18:24.510>then <00:18:24.685>this <00:18:24.860>customer <00:18:25.035>created <00:18:25.210>event <00:18:25.385>is <00:18:25.560>stored <00:18:25.735>in

386
00:18:27.355 --> 00:18:28.475
<00:18:27.355>your <00:18:27.859>event <00:18:28.362>store.

387
00:18:29.675 --> 00:18:32.225
<00:18:29.675>After <00:18:29.875>that, <00:18:30.075>the <00:18:30.274>contract <00:18:30.475>system <00:18:30.675>says <00:18:30.875>I <00:18:31.075>need

388
00:18:32.225 --> 00:18:33.305
<00:18:32.225>to <00:18:32.549>consume <00:18:32.873>all <00:18:33.197>events.

389
00:18:33.495 --> 00:18:36.385
<00:18:33.495>Basically <00:18:33.669>when <00:18:33.844>someone <00:18:34.020>is <00:18:34.195>created <00:18:34.370>in <00:18:34.544>the <00:18:34.719>other <00:18:34.895>system,

390
00:18:36.465 --> 00:18:39.465
<00:18:36.465>I <00:18:36.605>want <00:18:36.745>to <00:18:36.885>get <00:18:37.024>this <00:18:37.165>information <00:18:37.304>the <00:18:37.445>same <00:18:37.584>for <00:18:37.725>the <00:18:37.865>address.

391
00:18:40.245 --> 00:18:44.465
<00:18:40.245>So <00:18:40.400>was <00:18:40.556>created, <00:18:40.711>event <00:18:40.867>is <00:18:41.022>stored, <00:18:41.178>address <00:18:41.333>created <00:18:41.489>is <00:18:41.645>consumed

392
00:18:44.465 --> 00:18:46.305
<00:18:44.465>by <00:18:44.698>the <00:18:44.931>contract <00:18:45.165>system, <00:18:45.398>everything <00:18:45.631>is <00:18:45.865>fine.

393
00:18:48.255 --> 00:18:50.795
<00:18:48.255>And <00:18:48.395>now <00:18:48.535>inside <00:18:48.675>the <00:18:48.815>contract <00:18:48.955>system <00:18:49.095>we <00:18:49.235>create <00:18:49.375>a <00:18:49.515>new <00:18:49.655>bank

394
00:18:50.795 --> 00:18:52.075
<00:18:50.795>account, <00:18:51.083>which <00:18:51.371>is <00:18:51.659>totally <00:18:51.947>fine.

395
00:18:52.695 --> 00:18:55.475
<00:18:52.695>We <00:18:52.895>create <00:18:53.095>as <00:18:53.294>well <00:18:53.495>an <00:18:53.695>event, <00:18:53.895>store <00:18:54.095>event.

396
00:18:56.095 --> 00:18:58.955
<00:18:56.095>And <00:18:56.235>the <00:18:56.375>customer <00:18:56.515>system <00:18:56.655>says, <00:18:56.795>yeah, <00:18:56.935>I <00:18:57.075>don't <00:18:57.215>care <00:18:57.355>about <00:18:57.495>this.

397
00:19:00.895 --> 00:19:03.235
<00:19:00.895>And <00:19:01.095>now <00:19:01.295>maybe <00:19:01.495>you <00:19:01.695>saw <00:19:01.895>it, <00:19:02.095>maybe <00:19:02.295>not.

398
00:19:03.455 --> 00:19:05.355
<00:19:03.455>The <00:19:03.735>contract <00:19:04.014>system <00:19:04.294>changed <00:19:04.574>the <00:19:04.855>address

399
00:19:05.415 --> 00:19:07.235
<00:19:05.415>to <00:19:05.648>second <00:19:05.881>Street <00:19:06.115>instead <00:19:06.348>of <00:19:06.581>Main <00:19:06.815>Street.

400
00:19:08.255 --> 00:19:11.075
<00:19:08.255>So <00:19:08.382>as <00:19:08.509>well <00:19:08.636>the <00:19:08.764>event <00:19:08.891>store <00:19:09.018>got <00:19:09.145>a <00:19:09.273>new <00:19:09.400>event <00:19:09.527>address <00:19:09.655>changed

401
00:19:11.615 --> 00:19:14.875
<00:19:11.615>and <00:19:11.755>now <00:19:11.895>the <00:19:12.035>customer <00:19:12.175>system <00:19:12.315>will <00:19:12.455>receive <00:19:12.595>this <00:19:12.735>data <00:19:12.875>will <00:19:13.015>also

402
00:19:14.875 --> 00:19:16.195
<00:19:14.875>process <00:19:15.112>it <00:19:15.350>and <00:19:15.587>everything <00:19:15.825>is <00:19:16.062>fine.

403
00:19:18.195 --> 00:19:21.575
<00:19:18.195>But <00:19:18.370>what <00:19:18.544>happened <00:19:18.720>when <00:19:18.895>your <00:19:19.070>customer <00:19:19.245>system <00:19:19.419>goes <00:19:19.595>down,

404
00:19:22.395 --> 00:19:24.775
<00:19:22.395>you <00:19:22.628>delete <00:19:22.861>your <00:19:23.095>production <00:19:23.328>database <00:19:23.561>for <00:19:23.795>example,

405
00:19:24.995 --> 00:19:26.695
<00:19:24.995>or <00:19:25.695>something <00:19:26.395>happened

406
00:19:26.695 --> 00:19:28.855
<00:19:26.695>and <00:19:26.895>you <00:19:27.095>have, <00:19:27.294>you <00:19:27.495>haven't <00:19:27.695>your <00:19:27.895>data <00:19:28.095>anymore

407
00:19:29.075 --> 00:19:31.495
<00:19:29.075>or <00:19:29.202>you <00:19:29.329>want <00:19:29.456>to <00:19:29.584>do <00:19:29.711>a <00:19:29.838>migration, <00:19:29.965>you <00:19:30.093>created <00:19:30.220>a <00:19:30.347>new <00:19:30.475>system

408
00:19:31.555 --> 00:19:33.575
<00:19:31.555>and <00:19:31.710>you <00:19:31.866>want <00:19:32.021>to <00:19:32.177>get <00:19:32.332>all <00:19:32.488>the <00:19:32.643>correct <00:19:32.799>data <00:19:32.955>again,

409
00:19:34.605 --> 00:19:37.535
<00:19:34.605>then <00:19:34.780>you <00:19:34.955>can <00:19:35.130>use <00:19:35.305>the, <00:19:35.480>yeah, <00:19:35.655>so-called <00:19:35.830>replay <00:19:36.005>functionality.

410
00:19:37.835 --> 00:19:39.615
<00:19:37.835>You <00:19:37.990>can <00:19:38.146>start <00:19:38.301>at <00:19:38.457>the <00:19:38.612>beginning <00:19:38.768>of <00:19:38.923>the <00:19:39.079>event <00:19:39.235>store

411
00:19:39.995 --> 00:19:42.695
<00:19:39.995>and <00:19:40.150>go <00:19:40.306>through <00:19:40.461>all <00:19:40.617>events <00:19:40.772>and <00:19:40.928>get <00:19:41.083>all <00:19:41.239>this <00:19:41.395>data

412
00:19:42.995 --> 00:19:45.055
<00:19:42.995>and <00:19:43.228>yeah, <00:19:43.461>you <00:19:43.695>can <00:19:43.928>rebuild <00:19:44.161>your <00:19:44.395>system.

413
00:19:45.475 --> 00:19:48.295
<00:19:45.475>So <00:19:45.630>what <00:19:45.786>we <00:19:45.941>do, <00:19:46.097>we <00:19:46.252>take <00:19:46.408>the <00:19:46.563>customer <00:19:46.719>created <00:19:46.875>event,

414
00:19:48.635 --> 00:19:52.495
<00:19:48.635>we <00:19:48.790>add <00:19:48.946>the <00:19:49.101>address, <00:19:49.257>we <00:19:49.412>yeah <00:19:49.568>edit <00:19:49.723>the <00:19:49.879>contract <00:19:50.035>created

415
00:19:52.595 --> 00:19:54.215
<00:19:52.595>or <00:19:52.945>contract <00:19:53.295>bank <00:19:53.645>account <00:19:53.995>information,

416
00:19:54.305 --> 00:19:56.775
<00:19:54.305>which <00:19:54.538>doesn't <00:19:54.771>care <00:19:55.005>the <00:19:55.238>address <00:19:55.471>change <00:19:55.705>event

417
00:19:56.835 --> 00:19:57.855
<00:19:56.835>and <00:19:57.018>so <00:19:57.202>on <00:19:57.385>and <00:19:57.569>so <00:19:57.753>on.

418
00:19:58.435 --> 00:20:00.055
<00:19:58.435>And <00:19:58.635>after <00:19:58.835>some <00:19:59.034>time <00:19:59.235>we <00:19:59.435>in <00:19:59.635>the <00:19:59.835>future

419
00:20:00.395 --> 00:20:03.495
<00:20:00.395>or <00:20:00.550>it's, <00:20:00.706>it's <00:20:00.861>a <00:20:01.017>past, <00:20:01.172>it's <00:20:01.328>done, <00:20:01.483>everything <00:20:01.639>is <00:20:01.795>fine.

420
00:20:03.675 --> 00:20:04.895
<00:20:03.675>We <00:20:03.894>have <00:20:04.114>the <00:20:04.333>correct <00:20:04.553>data <00:20:04.773>stored.

421
00:20:06.755 --> 00:20:08.895
<00:20:06.755>So <00:20:06.988>basically <00:20:07.221>this <00:20:07.455>is <00:20:07.688>called <00:20:07.921>event <00:20:08.155>sourcing.

422
00:20:09.475 --> 00:20:11.455
<00:20:09.475>And <00:20:09.708>by <00:20:09.941>events, <00:20:10.175>by <00:20:10.408>using <00:20:10.641>event <00:20:10.875>sourcing,

423
00:20:11.995 --> 00:20:14.495
<00:20:11.995>you <00:20:12.135>have <00:20:12.274>your <00:20:12.415>event <00:20:12.554>store <00:20:12.695>as <00:20:12.834>a <00:20:12.975>single <00:20:13.114>source <00:20:13.254>of <00:20:13.395>truth.

424
00:20:14.755 --> 00:20:15.895
<00:20:14.755>So <00:20:15.011>everything <00:20:15.268>which <00:20:15.524>is <00:20:15.781>stored

425
00:20:15.895 --> 00:20:18.175
<00:20:15.895>inside <00:20:16.095>the <00:20:16.295>event <00:20:16.495>store <00:20:16.695>should <00:20:16.895>be <00:20:17.095>the <00:20:17.295>truth.

426
00:20:18.235 --> 00:20:21.935
<00:20:18.235>And <00:20:18.409>when <00:20:18.584>there <00:20:18.760>are <00:20:18.935>any <00:20:19.110>differences <00:20:19.284>between <00:20:19.459>your <00:20:19.635>systems,

427
00:20:22.725 --> 00:20:25.095
<00:20:22.725>yeah, <00:20:22.880>you <00:20:23.036>should <00:20:23.191>have <00:20:23.347>a <00:20:23.502>look <00:20:23.658>to <00:20:23.813>your <00:20:23.969>event <00:20:24.125>store.

428
00:20:25.115 --> 00:20:27.335
<00:20:25.115>And <00:20:25.290>there <00:20:25.465>everything <00:20:25.640>is <00:20:25.815>in <00:20:25.990>you <00:20:26.165>need <00:20:26.340>to <00:20:26.515>know.

429
00:20:28.385 --> 00:20:30.395
<00:20:28.385>Furthermore, <00:20:28.665>you <00:20:28.945>have <00:20:29.225>auditing <00:20:29.504>by <00:20:29.785>default.

430
00:20:30.575 --> 00:20:32.635
<00:20:30.575>So <00:20:30.775>when <00:20:30.975>for <00:20:31.175>example, <00:20:31.375>a <00:20:31.575>customer <00:20:31.775>calls <00:20:31.975>you

431
00:20:32.635 --> 00:20:34.675
<00:20:32.635>and <00:20:32.835>said, <00:20:33.035>Hey, <00:20:33.235>I <00:20:33.435>changed <00:20:33.635>my <00:20:33.835>address <00:20:34.035>and,

432
00:20:34.675 --> 00:20:36.115
<00:20:34.675>and <00:20:34.934>then, <00:20:35.193>and <00:20:35.452>it's <00:20:35.711>not <00:20:35.971>done.

433
00:20:36.175 --> 00:20:39.595
<00:20:36.175>Why <00:20:36.291>is <00:20:36.408>this <00:20:36.524>the <00:20:36.641>case? <00:20:36.758>You <00:20:36.875>can <00:20:36.991>have <00:20:37.108>a <00:20:37.225>look <00:20:37.341>in <00:20:37.458>your <00:20:37.575>data

434
00:20:39.815 --> 00:20:41.075
<00:20:39.815>and <00:20:40.193>see <00:20:40.571>what <00:20:40.949>happened.

435
00:20:41.215 --> 00:20:45.155
<00:20:41.215>Why <00:20:41.389>doesn't <00:20:41.564>the <00:20:41.740>address <00:20:41.915>change <00:20:42.090>happened? <00:20:42.264>Does <00:20:42.439>it <00:20:42.615>happen?

436
00:20:45.305 --> 00:20:46.675
<00:20:45.305>Does <00:20:45.716>it <00:20:46.127>rechange <00:20:46.538>again,

437
00:20:47.045 --> 00:20:51.185
<00:20:47.045>whatever <00:20:47.278>you <00:20:47.511>have <00:20:47.745>more <00:20:47.978>analytics <00:20:48.211>as <00:20:48.445>well.

438
00:20:51.185 --> 00:20:53.185
<00:20:51.185>What <00:20:51.385>I <00:20:51.585>showed <00:20:51.784>you <00:20:51.985>the <00:20:52.185>alternative <00:20:52.385>read <00:20:52.585>models,

439
00:20:53.525 --> 00:20:56.105
<00:20:53.525>you <00:20:53.680>don't <00:20:53.836>need <00:20:53.991>to <00:20:54.147>know <00:20:54.302>exactly <00:20:54.458>which <00:20:54.613>questions <00:20:54.769>you <00:20:54.925>want

440
00:20:56.105 --> 00:20:57.145
<00:20:56.105>to <00:20:56.339>answer <00:20:56.573>at <00:20:56.807>the <00:20:57.041>beginning.

441
00:20:57.245 --> 00:21:00.065
<00:20:57.245>You <00:20:57.372>can <00:20:57.499>yeah, <00:20:57.626>on <00:20:57.754>the <00:20:57.881>run, <00:20:58.008>on <00:20:58.135>the <00:20:58.263>fly, <00:20:58.390>you <00:20:58.517>can <00:20:58.645>just

442
00:21:00.645 --> 00:21:01.745
<00:21:00.645>ask <00:21:00.975>questions <00:21:01.304>and <00:21:01.635>do

443
00:21:01.855 --> 00:21:04.465
<00:21:01.855>with <00:21:02.055>a <00:21:02.255>little <00:21:02.455>bit <00:21:02.655>complexity <00:21:02.855>answer <00:21:03.055>this <00:21:03.255>question.

444
00:21:05.125 --> 00:21:08.025
<00:21:05.125>And <00:21:05.280>so <00:21:05.436>replay <00:21:05.591>function <00:21:05.747>functionality <00:21:05.902>I <00:21:06.058>showed <00:21:06.213>you <00:21:06.369>as <00:21:06.525>well,

445
00:21:10.065 --> 00:21:13.405
<00:21:10.065>but <00:21:10.240>event <00:21:10.415>sourcing <00:21:10.590>has <00:21:10.765>some <00:21:10.940>disadvantages <00:21:11.115>again <00:21:11.290>as <00:21:11.465>well.

446
00:21:13.865 --> 00:21:15.925
<00:21:13.865>As <00:21:14.065>I <00:21:14.265>said, <00:21:14.465>it's <00:21:14.665>more <00:21:14.865>complex <00:21:15.065>than <00:21:15.265>just

447
00:21:16.045 --> 00:21:17.085
<00:21:16.045>storing <00:21:16.279>it <00:21:16.513>in <00:21:16.747>the <00:21:16.981>database.

448
00:21:17.855 --> 00:21:20.845
<00:21:17.855>Event <00:21:18.010>versioning <00:21:18.166>is <00:21:18.321>required, <00:21:18.477>which <00:21:18.632>is <00:21:18.788>as <00:21:18.943>well <00:21:19.099>a <00:21:19.255>complexity.

449
00:21:21.425 --> 00:21:23.845
<00:21:21.425>And <00:21:21.552>it <00:21:21.679>could <00:21:21.806>be <00:21:21.934>that <00:21:22.061>there <00:21:22.188>are <00:21:22.315>a <00:21:22.443>large <00:21:22.570>stream <00:21:22.697>of <00:21:22.825>data.

450
00:21:24.405 --> 00:21:26.165
<00:21:24.405>I <00:21:24.685>was <00:21:24.965>in <00:21:25.245>one <00:21:25.524>customer <00:21:25.805>project

451
00:21:26.335 --> 00:21:30.445
<00:21:26.335>where <00:21:26.475>we <00:21:26.615>stored <00:21:26.755>over <00:21:26.895>1 <00:21:27.035>billion <00:21:27.175>events, <00:21:27.315>it <00:21:27.455>worked <00:21:27.595>quite <00:21:27.735>good.

452
00:21:30.705 --> 00:21:32.925
<00:21:30.705>But <00:21:30.938>yeah, <00:21:31.171>after <00:21:31.405>I <00:21:31.638>guess <00:21:31.871>one <00:21:32.105>year,

453
00:21:32.985 --> 00:21:34.685
<00:21:32.985>1 <00:21:33.264>billion <00:21:33.544>data <00:21:33.824>in <00:21:34.104>10 <00:21:34.385>years,

454
00:21:34.915 --> 00:21:37.085
<00:21:34.915>when <00:21:35.090>it <00:21:35.264>goes <00:21:35.440>this <00:21:35.615>way, <00:21:35.790>we <00:21:35.965>have <00:21:36.139>10 <00:21:36.315>billions.

455
00:21:37.085 --> 00:21:40.915
<00:21:37.085>Maybe <00:21:37.240>it's <00:21:37.396>harder <00:21:37.551>than <00:21:37.707>it <00:21:37.862>is <00:21:38.018>something <00:21:38.173>which <00:21:38.329>is <00:21:38.485>not

456
00:21:41.555 --> 00:21:43.595
<00:21:41.555>directly <00:21:41.835>a <00:21:42.115>disadvantage, <00:21:42.395>but <00:21:42.675>which <00:21:42.955>could

457
00:21:43.755 --> 00:21:44.915
<00:21:43.755>be <00:21:43.963>a <00:21:44.172>problem <00:21:44.381>in <00:21:44.590>the <00:21:44.799>future.

458
00:21:47.395 --> 00:21:50.895
<00:21:47.395>So <00:21:47.628>to <00:21:47.861>summarize, <00:21:48.095>what <00:21:48.328>is <00:21:48.561>an <00:21:48.795>microservice,

459
00:21:51.115 --> 00:21:52.775
<00:21:51.115>an <00:21:51.465>autonomous <00:21:51.815>microservice <00:21:52.165>for <00:21:52.515>me,

460
00:21:53.205 --> 00:21:56.135
<00:21:53.205>basically <00:21:53.405>when <00:21:53.605>you <00:21:53.804>want <00:21:54.004>a <00:21:54.205>highly <00:21:54.405>independent <00:21:54.605>service,

461
00:21:56.605 --> 00:21:58.735
<00:21:56.605>then <00:21:56.885>it's <00:21:57.165>yeah, <00:21:57.445>an <00:21:57.725>autonomous <00:21:58.005>microservice

462
00:21:58.735 --> 00:22:01.655
<00:21:58.735>because <00:21:59.014>at <00:21:59.294>the <00:21:59.574>end, <00:21:59.854>independent <00:22:00.135>autonomous

463
00:22:01.915 --> 00:22:02.975
<00:22:01.915>is <00:22:02.105>more <00:22:02.296>or <00:22:02.487>less <00:22:02.678>the <00:22:02.869>same.

464
00:22:04.755 --> 00:22:07.575
<00:22:04.755>You <00:22:05.105>want <00:22:05.455>availability <00:22:05.805>over <00:22:06.155>consistency.

465
00:22:07.755 --> 00:22:11.495
<00:22:07.755>And <00:22:07.895>this <00:22:08.035>is <00:22:08.175>more <00:22:08.315>important <00:22:08.455>for <00:22:08.595>you <00:22:08.735>when <00:22:08.875>from <00:22:09.015>my <00:22:09.155>perspective,

466
00:22:11.635 --> 00:22:14.775
<00:22:11.635>you <00:22:11.775>want <00:22:11.915>all <00:22:12.055>these <00:22:12.195>and <00:22:12.335>you're <00:22:12.475>using <00:22:12.615>event <00:22:12.754>sourcing <00:22:12.895>as <00:22:13.035>well.

467
00:22:15.165 --> 00:22:17.775
<00:22:15.165>When <00:22:15.340>you <00:22:15.514>have <00:22:15.690>event <00:22:15.865>code <00:22:16.040>use, <00:22:16.215>event <00:22:16.389>sourcing, <00:22:16.565>most

468
00:22:17.775 --> 00:22:20.295
<00:22:17.775>of <00:22:17.950>the <00:22:18.125>cases <00:22:18.300>it's <00:22:18.475>yeah, <00:22:18.650>better <00:22:18.825>to <00:22:19.000>use <00:22:19.175>this.

469
00:22:20.295 --> 00:22:24.375
<00:22:20.295>Instead <00:22:20.435>of <00:22:20.575>just <00:22:20.715>sending <00:22:20.855>these <00:22:20.995>events, <00:22:21.135>you <00:22:21.275>need <00:22:21.415>plug <00:22:21.555>and <00:22:21.695>play

470
00:22:24.795 --> 00:22:26.895
<00:22:24.795>and <00:22:25.028>you <00:22:25.261>want <00:22:25.495>a <00:22:25.728>high <00:22:25.961>resilient <00:22:26.195>system,

471
00:22:27.685 --> 00:22:29.735
<00:22:27.685>then <00:22:27.918>you <00:22:28.151>can <00:22:28.385>create <00:22:28.618>something <00:22:28.851>like <00:22:29.085>this.

472
00:22:29.955 --> 00:22:34.015
<00:22:29.955>You <00:22:30.110>have <00:22:30.266>a <00:22:30.421>microphone <00:22:30.577>and <00:22:30.732>your <00:22:30.888>API <00:22:31.043>your <00:22:31.199>application <00:22:31.355>itself

473
00:22:34.635 --> 00:22:38.135
<00:22:34.635>and <00:22:34.775>on <00:22:34.915>database <00:22:35.055>and <00:22:35.195>the <00:22:35.335>only <00:22:35.475>communication <00:22:35.615>you <00:22:35.754>have <00:22:35.895>is <00:22:36.035>via

474
00:22:38.395 --> 00:22:41.095
<00:22:38.395>the <00:22:38.628>message <00:22:38.861>broker <00:22:39.095>event <00:22:39.328>broker <00:22:39.561>via <00:22:39.795>events.

475
00:22:41.885 --> 00:22:45.055
<00:22:41.885>This <00:22:42.060>is <00:22:42.235>why <00:22:42.410>I <00:22:42.585>don't <00:22:42.760>call <00:22:42.935>it <00:22:43.110>fully <00:22:43.285>independent

476
00:22:45.325 --> 00:22:49.255
<00:22:45.325>because <00:22:45.525>at <00:22:45.725>the <00:22:45.925>end <00:22:46.125>each <00:22:46.325>service <00:22:46.525>has <00:22:46.725>some,

477
00:22:49.845 --> 00:22:52.455
<00:22:49.845>some <00:22:49.985>dependencies <00:22:50.125>and <00:22:50.265>at <00:22:50.405>the <00:22:50.545>end <00:22:50.685>it <00:22:50.825>could <00:22:50.965>be, <00:22:51.105>for <00:22:51.245>example,

478
00:22:52.565 --> 00:22:55.615
<00:22:52.565>just <00:22:52.740>a <00:22:52.915>contract <00:22:53.090>of <00:22:53.265>an <00:22:53.440>event <00:22:53.615>with <00:22:53.790>the <00:22:53.965>connection

479
00:22:55.615 --> 00:22:59.055
<00:22:55.615>to <00:22:55.770>the <00:22:55.926>event <00:22:56.081>broker <00:22:56.237>and <00:22:56.392>for <00:22:56.548>sure <00:22:56.703>plug <00:22:56.859>and <00:22:57.015>play.

480
00:22:59.075 --> 00:23:00.415
<00:22:59.075>You <00:22:59.316>can <00:22:59.557>just <00:22:59.798>add <00:23:00.039>multiple <00:23:00.281>systems,

481
00:23:00.855 --> 00:23:03.415
<00:23:00.855>multiple <00:23:01.088>micro <00:23:01.321>front <00:23:01.555>ends, <00:23:01.788>multiple <00:23:02.021>backend <00:23:02.255>systems,

482
00:23:03.755 --> 00:23:06.095
<00:23:03.755>all <00:23:03.988>just <00:23:04.221>communicating <00:23:04.455>via <00:23:04.688>this <00:23:04.921>event <00:23:05.155>store.

483
00:23:08.145 --> 00:23:10.835
<00:23:08.145>Yeah, <00:23:08.320>and <00:23:08.495>before <00:23:08.670>I <00:23:08.845>leave, <00:23:09.020>um, <00:23:09.195>what <00:23:09.370>I <00:23:09.545>want

484
00:23:10.835 --> 00:23:12.915
<00:23:10.835>to <00:23:11.035>say <00:23:11.235>you <00:23:11.435>at <00:23:11.635>the <00:23:11.835>end, <00:23:12.035>um, <00:23:12.235>yeah,

485
00:23:12.915 --> 00:23:15.075
<00:23:12.915>event <00:23:13.090>driven <00:23:13.264>architecture <00:23:13.440>could <00:23:13.615>be <00:23:13.790>a <00:23:13.965>quite <00:23:14.139>nice <00:23:14.315>solutions,

486
00:23:15.575 --> 00:23:18.075
<00:23:15.575>but <00:23:15.730>at <00:23:15.886>the <00:23:16.041>end <00:23:16.197>we <00:23:16.352>want <00:23:16.508>to <00:23:16.663>fulfill <00:23:16.819>business <00:23:16.975>requirements

487
00:23:18.615 --> 00:23:21.595
<00:23:18.615>and <00:23:18.895>fulfilling <00:23:19.175>business <00:23:19.455>requirements <00:23:19.735>is, <00:23:20.015>yeah,

488
00:23:21.595 --> 00:23:22.915
<00:23:21.595>what <00:23:21.793>I <00:23:21.991>would <00:23:22.189>say <00:23:22.387>is <00:23:22.585>the <00:23:22.783>most

489
00:23:23.735 --> 00:23:26.835
<00:23:23.735>or <00:23:23.890>the <00:23:24.046>most <00:23:24.201>important <00:23:24.357>thing <00:23:24.512>we <00:23:24.668>as <00:23:24.823>a <00:23:24.979>developer <00:23:25.135>do.

490
00:23:27.455 --> 00:23:29.875
<00:23:27.455>The <00:23:27.629>best <00:23:27.804>thing <00:23:27.980>you <00:23:28.155>can <00:23:28.330>do <00:23:28.504>is <00:23:28.679>delivering <00:23:28.855>fast

491
00:23:29.895 --> 00:23:31.995
<00:23:29.895>and <00:23:30.361>efficient <00:23:30.828>business <00:23:31.295>value

492
00:23:32.335 --> 00:23:36.595
<00:23:32.335>and <00:23:32.535>not <00:23:32.735>any <00:23:32.935>fancy <00:23:33.135>microservice, <00:23:33.335>event <00:23:33.535>driven <00:23:33.735>architecture,

493
00:23:37.275 --> 00:23:38.515
<00:23:37.275>whatever <00:23:37.647>at <00:23:38.019>the <00:23:38.391>end,

494
00:23:38.515 --> 00:23:40.595
<00:23:38.515>request <00:23:38.690>driven <00:23:38.865>could <00:23:39.040>be <00:23:39.215>the <00:23:39.390>best <00:23:39.565>solution <00:23:39.740>for <00:23:39.915>you.

495
00:23:40.655 --> 00:23:42.155
<00:23:40.655>And <00:23:40.925>then <00:23:41.195>honestly, <00:23:41.465>please <00:23:41.735>use <00:23:42.004>it

496
00:23:42.225 --> 00:23:44.275
<00:23:42.225>because <00:23:42.458>only <00:23:42.691>then <00:23:42.925>you <00:23:43.158>can <00:23:43.391>really <00:23:43.625>great,

497
00:23:44.385 --> 00:23:45.645
<00:23:44.385>make <00:23:44.952>great <00:23:45.519>solutions.

498
00:23:46.535 --> 00:23:47.535
<00:23:46.535>Thank <00:23:47.435>you.

499
00:23:52.635 --> 00:23:54.725
<00:23:52.635>Amazing, <00:23:53.335>amazing <00:23:54.035>presentation.

500
00:23:54.905 --> 00:23:56.805
<00:23:54.905>So <00:23:55.080>we <00:23:55.254>won't <00:23:55.430>have <00:23:55.605>q <00:23:55.780>and <00:23:55.955>a <00:23:56.129>from <00:23:56.305>Florian.

501
00:23:57.435 --> 00:23:59.725
<00:23:57.435>Just <00:23:57.635>before <00:23:57.835>you <00:23:58.034>start <00:23:58.235>weaving <00:23:58.435>just <00:23:58.635>some <00:23:58.835>announcements

502
00:23:59.825 --> 00:24:01.205
<00:23:59.825>as <00:24:00.032>a <00:24:00.239>closing <00:24:00.446>thoughts <00:24:00.653>and <00:24:00.860>some <00:24:01.067>stuff

503
00:24:01.205 --> 00:24:02.765
<00:24:01.205>that's <00:24:01.485>still <00:24:01.764>gonna <00:24:02.044>be <00:24:02.324>happening <00:24:02.605>today.

504
00:24:03.545 --> 00:24:05.005
<00:24:03.545>Uh, <00:24:03.807>before <00:24:04.070>we <00:24:04.333>go <00:24:04.596>into <00:24:04.859>there,

505
00:24:05.355 --> 00:24:06.405
<00:24:05.355>like <00:24:05.512>I <00:24:05.670>don't <00:24:05.827>know <00:24:05.985>if <00:24:06.142>you <00:24:06.300>noticed,

506
00:24:06.585 --> 00:24:08.205
<00:24:06.585>but <00:24:06.760>for <00:24:06.935>those <00:24:07.110>of <00:24:07.285>you <00:24:07.460>who <00:24:07.635>have <00:24:07.810>been <00:24:07.985>walking

507
00:24:08.205 --> 00:24:11.245
<00:24:08.205>around <00:24:08.379>on <00:24:08.554>this <00:24:08.730>stage <00:24:08.905>today, <00:24:09.080>everything <00:24:09.254>worked <00:24:09.429>super <00:24:09.605>smoothly

508
00:24:11.705 --> 00:24:14.125
<00:24:11.705>and <00:24:11.821>I <00:24:11.938>would <00:24:12.054>like <00:24:12.171>you <00:24:12.288>to <00:24:12.405>ask <00:24:12.521>to <00:24:12.638>ask <00:24:12.754>you <00:24:12.871>for <00:24:12.988>an <00:24:13.105>applause

509
00:24:14.125 --> 00:24:15.605
<00:24:14.125>because <00:24:14.458>our <00:24:14.791>video <00:24:15.124>and <00:24:15.457>audio

510
00:24:15.665 --> 00:24:17.045
<00:24:15.665>and <00:24:15.872>our <00:24:16.079>volunteers <00:24:16.286>team <00:24:16.493>did <00:24:16.700>an <00:24:16.907>ama

511
00:24:17.045 --> 00:24:18.165
<00:24:17.045>an <00:24:17.246>amazing <00:24:17.448>job <00:24:17.649>in <00:24:17.851>the <00:24:18.053>back.

512
00:24:18.165 --> 00:24:19.885
<00:24:18.165>So <00:24:18.340>thank <00:24:18.514>you <00:24:18.690>so <00:24:18.865>much <00:24:19.040>for <00:24:19.215>your <00:24:19.389>help <00:24:19.565>here.