WEBVTT

1
00:00:02.865 --> 00:00:04.995
<00:00:02.865>Okay, <00:00:03.040>as <00:00:03.215>Chris <00:00:03.390>told <00:00:03.565>you, <00:00:03.740>the <00:00:03.915>title <00:00:04.090>is, <00:00:04.265>uh,

2
00:00:04.995 --> 00:00:06.235
<00:00:04.995>single <00:00:05.367>Server <00:00:05.739>Global <00:00:06.111>Reach,

3
00:00:06.655 --> 00:00:10.355
<00:00:06.655>and, <00:00:06.795>uh, <00:00:06.935>I'm <00:00:07.075>going <00:00:07.215>to <00:00:07.355>talk <00:00:07.495>about <00:00:07.635>today, <00:00:07.775>uh, <00:00:07.915>about <00:00:08.055>like

4
00:00:10.355 --> 00:00:14.595
<00:00:10.355>where <00:00:10.510>we <00:00:10.666>are, <00:00:10.821>how <00:00:10.977>we <00:00:11.132>developed <00:00:11.288>our <00:00:11.443>system <00:00:11.599>to <00:00:11.755>scale

5
00:00:14.655 --> 00:00:15.715
<00:00:14.655>to <00:00:14.972>millions <00:00:15.291>of <00:00:15.609>users

6
00:00:16.415 --> 00:00:19.075
<00:00:16.415>and, <00:00:16.881>um, <00:00:17.348>to <00:00:17.814>actually

7
00:00:20.085 --> 00:00:22.275
<00:00:20.085>fight <00:00:20.435>complexity <00:00:20.785>along <00:00:21.135>the <00:00:21.485>way.

8
00:00:22.275 --> 00:00:24.715
<00:00:22.275>Because <00:00:22.450>when <00:00:22.625>I <00:00:22.799>prepared <00:00:22.974>this <00:00:23.150>talk, <00:00:23.325>I <00:00:23.500>thought, <00:00:23.674>okay,

9
00:00:24.715 --> 00:00:26.795
<00:00:24.715>this <00:00:24.890>is <00:00:25.065>going <00:00:25.240>to <00:00:25.415>be <00:00:25.590>a <00:00:25.765>very <00:00:25.940>technical <00:00:26.115>thing.

10
00:00:26.915 --> 00:00:28.315
<00:00:26.915>I <00:00:27.230>talk <00:00:27.545>about <00:00:27.860>our <00:00:28.175>architecture

11
00:00:28.315 --> 00:00:30.035
<00:00:28.315>and <00:00:28.455>all <00:00:28.595>the <00:00:28.735>things <00:00:28.875>that <00:00:29.015>we <00:00:29.155>did <00:00:29.295>to <00:00:29.435>make <00:00:29.575>this <00:00:29.715>work.

12
00:00:30.635 --> 00:00:33.395
<00:00:30.635>I <00:00:30.775>will <00:00:30.915>do <00:00:31.055>that, <00:00:31.195>but <00:00:31.335>not <00:00:31.475>so <00:00:31.615>much <00:00:31.755>as <00:00:31.895>a <00:00:32.035>thought,

13
00:00:33.395 --> 00:00:37.555
<00:00:33.395>because <00:00:33.522>I <00:00:33.649>realized <00:00:33.776>on <00:00:33.904>the <00:00:34.031>way <00:00:34.158>that <00:00:34.285>most <00:00:34.413>of <00:00:34.540>it <00:00:34.667>is <00:00:34.795>about,

14
00:00:38.295 --> 00:00:40.915
<00:00:38.295>Hey, <00:00:38.575>what's <00:00:38.855>are <00:00:39.135>our <00:00:39.415>guiding <00:00:39.695>principles?

15
00:00:41.425 --> 00:00:45.395
<00:00:41.425>What <00:00:41.580>is <00:00:41.736>our <00:00:41.891>coding <00:00:42.047>culture? <00:00:42.202>How <00:00:42.358>do <00:00:42.513>we <00:00:42.669>approach <00:00:42.824>things?

16
00:00:45.855 --> 00:00:49.315
<00:00:45.855>And <00:00:46.010>that <00:00:46.166>actually <00:00:46.321>made <00:00:46.477>it <00:00:46.632>possible <00:00:46.788>to <00:00:46.943>keep <00:00:47.099>complexity <00:00:47.254>down

17
00:00:49.775 --> 00:00:53.195
<00:00:49.775>and <00:00:49.930>build <00:00:50.086>a <00:00:50.241>system <00:00:50.397>that <00:00:50.552>actually <00:00:50.708>scales, <00:00:50.863>as <00:00:51.019>Chris <00:00:51.175>said,

18
00:00:53.195 --> 00:00:54.915
<00:00:53.195>to <00:00:53.545>millions <00:00:53.895>of <00:00:54.245>users, <00:00:54.595>uh,

19
00:00:56.365 --> 00:00:58.305
<00:00:56.365>on <00:00:56.715>theoretically <00:00:57.065>a <00:00:57.415>single <00:00:57.765>server.

20
00:00:59.415 --> 00:01:04.095
<00:00:59.415>So <00:00:59.570>let's <00:00:59.726>just <00:00:59.881>go <00:01:00.037>into <00:01:00.192>it <00:01:00.348>just <00:01:00.503>before <00:01:00.659>I <00:01:00.815>start.

21
00:01:05.455 --> 00:01:07.935
<00:01:05.455>A <00:01:05.630>few <00:01:05.804>facts <00:01:05.980>about <00:01:06.155>2024, <00:01:06.330>as <00:01:06.505>Chris <00:01:06.679>already <00:01:06.855>said,

22
00:01:08.405 --> 00:01:09.455
<00:01:08.405>it's <00:01:08.877>a <00:01:09.350>marketplace.

23
00:01:09.455 --> 00:01:11.215
<00:01:09.455>That <00:01:09.735>means <00:01:10.015>we <00:01:10.295>have <00:01:10.575>seller <00:01:10.855>side.

24
00:01:11.215 --> 00:01:15.895
<00:01:11.215>People <00:01:11.342>who <00:01:11.469>want <00:01:11.596>to <00:01:11.724>sell <00:01:11.851>watches <00:01:11.978>online <00:01:12.105>can <00:01:12.233>do <00:01:12.360>that <00:01:12.487>on <00:01:12.615>2024.

25
00:01:15.895 --> 00:01:19.095
<00:01:15.895>That <00:01:16.070>can <00:01:16.244>be <00:01:16.420>private <00:01:16.595>sellers, <00:01:16.770>so <00:01:16.945>people <00:01:17.119>like <00:01:17.295>us,

26
00:01:19.115 --> 00:01:22.135
<00:01:19.115>normal <00:01:19.270>people <00:01:19.426>who <00:01:19.581>own <00:01:19.737>a <00:01:19.892>luxury <00:01:20.048>watch <00:01:20.203>for <00:01:20.359>whatever <00:01:20.515>reason,

27
00:01:22.795 --> 00:01:26.615
<00:01:22.795>or <00:01:22.995>professional <00:01:23.195>sellers <00:01:23.395>who <00:01:23.595>are <00:01:23.795>in <00:01:23.995>the <00:01:24.195>business

28
00:01:26.615 --> 00:01:28.255
<00:01:26.615>for <00:01:26.815>a <00:01:27.015>long <00:01:27.214>time <00:01:27.414>and <00:01:27.615>do <00:01:27.815>that <00:01:28.015>professionally.

29
00:01:28.955 --> 00:01:30.095
<00:01:28.955>So <00:01:29.211>that's <00:01:29.468>what <00:01:29.724>we <00:01:29.981>do.

30
00:01:30.635 --> 00:01:34.735
<00:01:30.635>And <00:01:30.810>uh, <00:01:30.985>usually <00:01:31.160>I'd <00:01:31.335>love <00:01:31.510>to <00:01:31.685>ask <00:01:31.860>people, <00:01:32.035>uh,

31
00:01:34.965 --> 00:01:37.815
<00:01:34.965>when <00:01:35.105>I <00:01:35.245>sort <00:01:35.385>of <00:01:35.525>meet <00:01:35.665>new <00:01:35.805>colleagues <00:01:35.945>for <00:01:36.085>the <00:01:36.225>first <00:01:36.365>time

32
00:01:37.835 --> 00:01:40.615
<00:01:37.835>or <00:01:37.990>during <00:01:38.146>an <00:01:38.301>interview, <00:01:38.457>what <00:01:38.612>do <00:01:38.768>you <00:01:38.923>guess, <00:01:39.079>how <00:01:39.235>many

33
00:01:41.225 --> 00:01:42.975
<00:01:41.225>users <00:01:41.458>do <00:01:41.691>we <00:01:41.925>actually <00:01:42.158>have <00:01:42.391>on <00:01:42.625>our

34
00:01:43.255 --> 00:01:44.295
<00:01:43.255>platform <00:01:43.488>on <00:01:43.723>a <00:01:43.957>monthly <00:01:44.191>basis?

35
00:01:44.875 --> 00:01:47.495
<00:01:44.875>And <00:01:45.108>now <00:01:45.341>Chris <00:01:45.575>spoiled <00:01:45.808>spoiled <00:01:46.041>that <00:01:46.275>already.

36
00:01:47.835 --> 00:01:49.415
<00:01:47.835>So, <00:01:48.035>uh, <00:01:48.235>it's <00:01:48.435>a <00:01:48.635>bit <00:01:48.835>tough <00:01:49.035>on <00:01:49.235>all,

37
00:01:49.595 --> 00:01:52.855
<00:01:49.595>but <00:01:49.722>usually <00:01:49.849>the <00:01:49.976>answer <00:01:50.104>is <00:01:50.231>I <00:01:50.358>get <00:01:50.485>is <00:01:50.613>about, <00:01:50.740>yeah, <00:01:50.867>it's <00:01:50.995>10,000,

38
00:01:52.855 --> 00:01:55.375
<00:01:52.854>maybe <00:01:53.010>a <00:01:53.166>hundred <00:01:53.321>thousand <00:01:53.477>because <00:01:53.632>it's <00:01:53.788>quite <00:01:53.943>in <00:01:54.099>each <00:01:54.255>market.

39
00:01:55.675 --> 00:01:59.375
<00:01:55.675>And <00:01:55.815>most <00:01:55.955>of <00:01:56.095>the <00:01:56.235>people <00:01:56.375>don't <00:01:56.515>personally <00:01:56.655>own <00:01:56.795>a <00:01:56.935>luxury <00:01:57.075>watch

40
00:01:59.675 --> 00:02:02.615
<00:01:59.675>or <00:01:59.815>just <00:01:59.955>probably <00:02:00.095>knew, <00:02:00.235>uh, <00:02:00.375>very <00:02:00.515>few <00:02:00.655>people <00:02:00.795>who <00:02:00.935>do <00:02:01.075>that.

41
00:02:03.275 --> 00:02:05.335
<00:02:03.275>So, <00:02:03.508>but <00:02:03.741>it's <00:02:03.975>actually <00:02:04.208>millions <00:02:04.441>of <00:02:04.675>users.

42
00:02:05.595 --> 00:02:08.215
<00:02:05.595>We <00:02:05.795>have <00:02:05.995>about <00:02:06.195>9 <00:02:06.395>million <00:02:06.595>monthly <00:02:06.795>active <00:02:06.995>users.

43
00:02:08.405 --> 00:02:10.895
<00:02:08.405>It's <00:02:08.580>still <00:02:08.755>growing. <00:02:08.930>So <00:02:09.104>we <00:02:09.280>are <00:02:09.455>closer, <00:02:09.630>getting <00:02:09.805>closer

44
00:02:10.895 --> 00:02:12.135
<00:02:10.895>and <00:02:11.118>closer <00:02:11.341>to <00:02:11.564>10 <00:02:11.787>these <00:02:12.011>days.

45
00:02:12.755 --> 00:02:16.775
<00:02:12.755>And <00:02:12.988>we <00:02:13.221>have <00:02:13.454>a <00:02:13.688>high <00:02:13.921>mobile, <00:02:14.155>uh,

46
00:02:16.775 --> 00:02:17.975
<00:02:16.775>community, <00:02:17.135>so <00:02:17.495>to <00:02:17.855>say.

47
00:02:18.395 --> 00:02:20.895
<00:02:18.395>Um, <00:02:18.595>we <00:02:18.795>have <00:02:18.995>about <00:02:19.195>8 <00:02:19.395>million <00:02:19.595>app <00:02:19.795>installations,

48
00:02:22.565 --> 00:02:25.265
<00:02:22.565>and <00:02:22.740>the <00:02:22.915>whole <00:02:23.090>system <00:02:23.265>is <00:02:23.440>managed <00:02:23.615>by <00:02:23.790>a <00:02:23.965>product

49
00:02:25.285 --> 00:02:27.865
<00:02:25.285>and <00:02:25.518>technology <00:02:25.751>team <00:02:25.984>of <00:02:26.218>about <00:02:26.451>130 <00:02:26.685>people.

50
00:02:28.525 --> 00:02:32.345
<00:02:28.525>And <00:02:28.725>this <00:02:28.925>includes <00:02:29.125>developers, <00:02:29.325>of <00:02:29.525>course, <00:02:29.725>Java, <00:02:29.925>um,

51
00:02:32.345 --> 00:02:34.705
<00:02:32.345>but <00:02:32.545>also <00:02:32.745>of <00:02:32.945>course <00:02:33.145>front <00:02:33.345>end <00:02:33.545>app <00:02:33.745>development

52
00:02:34.845 --> 00:02:38.745
<00:02:34.845>and <00:02:35.045>also, <00:02:35.245>uh, <00:02:35.445>UX <00:02:35.645>product <00:02:35.845>management, <00:02:36.045>scrum <00:02:36.245>Masters,

53
00:02:39.205 --> 00:02:41.665
<00:02:39.204>and <00:02:39.344>all <00:02:39.484>the <00:02:39.624>people <00:02:39.765>that <00:02:39.904>you <00:02:40.045>need <00:02:40.184>to <00:02:40.325>build <00:02:40.464>a <00:02:40.605>product.

54
00:02:42.565 --> 00:02:46.025
<00:02:42.565>And <00:02:42.765>these <00:02:42.965>are <00:02:43.165>distributed <00:02:43.365>among <00:02:43.565>12 <00:02:43.765>Scrum <00:02:43.965>teams.

55
00:02:48.045 --> 00:02:50.305
<00:02:48.045>And <00:02:48.220>an <00:02:48.395>interesting <00:02:48.570>fact <00:02:48.745>about <00:02:48.920>KU <00:02:49.095>24 <00:02:49.270>is <00:02:49.445>that

56
00:02:51.145 --> 00:02:52.745
<00:02:51.145>sometime <00:02:51.378>ago <00:02:51.611>we <00:02:51.845>were <00:02:52.078>on <00:02:52.311>the <00:02:52.545>list

57
00:02:53.045 --> 00:02:56.345
<00:02:53.045>of <00:02:53.220>the <00:02:53.395>top <00:02:53.570>100 <00:02:53.745>market <00:02:53.920>places <00:02:54.095>by <00:02:54.270>Andersen <00:02:54.445>Horowitz.

58
00:02:57.245 --> 00:03:00.165
<00:02:57.245>Um, <00:02:57.445>we <00:02:57.645>were <00:02:57.845>on <00:02:58.045>place <00:02:58.245>27, <00:02:58.445>which <00:02:58.645>in

59
00:03:00.165 --> 00:03:02.005
<00:03:00.165>and <00:03:00.398>of <00:03:00.631>itself <00:03:00.864>is <00:03:01.098>kind <00:03:01.331>of <00:03:01.565>okay.

60
00:03:02.545 --> 00:03:04.805
<00:03:02.545>But <00:03:02.720>the <00:03:02.894>interesting <00:03:03.070>thing <00:03:03.244>is <00:03:03.420>we <00:03:03.595>were <00:03:03.769>the <00:03:03.945>first

61
00:03:05.505 --> 00:03:06.965
<00:03:05.505>non-US <00:03:05.833>company <00:03:06.162>on <00:03:06.490>the <00:03:06.819>list.

62
00:03:07.905 --> 00:03:09.205
<00:03:07.905>So <00:03:08.295>that's <00:03:08.685>Corona <00:03:09.075>24.

63
00:03:09.425 --> 00:03:12.125
<00:03:09.425>You <00:03:09.565>now <00:03:09.705>know <00:03:09.845>roughly <00:03:09.985>about <00:03:10.125>the <00:03:10.265>scale <00:03:10.405>of <00:03:10.545>what <00:03:10.685>we're <00:03:10.825>doing.

64
00:03:12.185 --> 00:03:14.445
<00:03:12.185>We <00:03:12.385>are <00:03:12.585>marketplace. <00:03:12.785>So <00:03:12.985>let's <00:03:13.185>now <00:03:13.385>talk <00:03:13.585>about

65
00:03:16.645 --> 00:03:19.945
<00:03:16.645>why <00:03:16.820>we <00:03:16.995>are <00:03:17.170>running <00:03:17.345>our <00:03:17.520>system <00:03:17.695>on <00:03:17.870>bare <00:03:18.045>metal.

66
00:03:20.085 --> 00:03:22.665
<00:03:20.085>And <00:03:20.435>this <00:03:20.785>is <00:03:21.135>a <00:03:21.485>question.

67
00:03:22.885 --> 00:03:24.625
<00:03:22.885>So <00:03:23.084>why, <00:03:23.285>why <00:03:23.484>are <00:03:23.685>we <00:03:23.885>actually <00:03:24.084>doing <00:03:24.285>this?

68
00:03:25.165 --> 00:03:28.745
<00:03:25.165>Is <00:03:25.320>the <00:03:25.476>questions <00:03:25.631>that <00:03:25.787>we <00:03:25.942>get <00:03:26.098>on <00:03:26.253>a <00:03:26.409>regular <00:03:26.565>basis.

69
00:03:29.125 --> 00:03:32.145
<00:03:29.125>And <00:03:29.300>the <00:03:29.475>last <00:03:29.650>time <00:03:29.825>we <00:03:30.000>got <00:03:30.175>this <00:03:30.350>is, <00:03:30.525>uh,

70
00:03:32.145 --> 00:03:35.345
<00:03:32.145>during <00:03:32.320>a <00:03:32.495>technical <00:03:32.670>due <00:03:32.845>diligence <00:03:33.020>where <00:03:33.195>the <00:03:33.370>consultancy <00:03:33.545>came

71
00:03:35.365 --> 00:03:36.745
<00:03:35.365>and <00:03:35.613>they <00:03:35.861>looked <00:03:36.110>at <00:03:36.358>many <00:03:36.607>things,

72
00:03:36.805 --> 00:03:40.425
<00:03:36.805>but <00:03:36.945>they <00:03:37.085>also <00:03:37.225>of <00:03:37.365>course <00:03:37.505>looked <00:03:37.645>at <00:03:37.785>our <00:03:37.925>tech <00:03:38.065>tech <00:03:38.205>stack

73
00:03:40.445 --> 00:03:42.025
<00:03:40.445>and <00:03:40.644>the <00:03:40.845>structure <00:03:41.045>and <00:03:41.245>how <00:03:41.445>we <00:03:41.644>are <00:03:41.845>working.

74
00:03:43.005 --> 00:03:45.305
<00:03:43.005>And <00:03:43.160>they <00:03:43.316>asked, <00:03:43.471>why <00:03:43.627>are <00:03:43.782>you <00:03:43.938>not <00:03:44.093>in <00:03:44.249>the <00:03:44.405>cloud?

75
00:03:45.925 --> 00:03:49.625
<00:03:45.925>Why <00:03:46.065>are <00:03:46.205>you <00:03:46.345>doing <00:03:46.485>this? <00:03:46.625>So, <00:03:46.765>um, <00:03:46.905>we <00:03:47.045>had <00:03:47.185>to <00:03:47.325>answer

76
00:03:49.625 --> 00:03:51.465
<00:03:49.625>that <00:03:49.780>question <00:03:49.936>and <00:03:50.091>we <00:03:50.247>actually <00:03:50.402>have <00:03:50.558>a <00:03:50.713>pretty <00:03:50.869>good <00:03:51.025>answer,

77
00:03:51.485 --> 00:03:53.345
<00:03:51.485>and <00:03:51.660>it's <00:03:51.835>pretty <00:03:52.010>much <00:03:52.185>the <00:03:52.360>same <00:03:52.535>thing <00:03:52.710>as, <00:03:52.885>um,

78
00:03:53.525 --> 00:03:54.865
<00:03:53.525>giving <00:03:53.927>to <00:03:54.329>you <00:03:54.731>today.

79
00:03:55.845 --> 00:04:00.245
<00:03:55.845>Um, <00:03:56.045>the <00:03:56.245>thing <00:03:56.445>is <00:03:56.645>that <00:03:56.845>there <00:03:57.045>are, <00:03:57.245>like,

80
00:04:01.185 --> 00:04:04.485
<00:04:01.185>if <00:04:01.325>you <00:04:01.465>move <00:04:01.605>everything <00:04:01.745>to <00:04:01.885>the <00:04:02.025>cloud, <00:04:02.165>it <00:04:02.305>has <00:04:02.445>a <00:04:02.585>price.

81
00:04:04.945 --> 00:04:08.965
<00:04:04.945>So <00:04:05.120>one <00:04:05.295>thing <00:04:05.470>is <00:04:05.644>that <00:04:05.820>cloud <00:04:05.995>computing <00:04:06.170>is <00:04:06.345>expensive.

82
00:04:09.105 --> 00:04:11.925
<00:04:09.105>So <00:04:09.304>companies <00:04:09.505>start <00:04:09.704>to <00:04:09.905>realize <00:04:10.105>that <00:04:10.304>these <00:04:10.505>days,

83
00:04:12.105 --> 00:04:14.765
<00:04:12.105>and <00:04:12.454>I <00:04:12.804>saw <00:04:13.155>a <00:04:13.505>discussion

84
00:04:15.345 --> 00:04:19.485
<00:04:15.345>at <00:04:15.500>the <00:04:15.656>we <00:04:15.811>Are <00:04:15.967>developers <00:04:16.122>conference <00:04:16.278>this <00:04:16.433>summer <00:04:16.589>where, <00:04:16.745>uh,

85
00:04:19.545 --> 00:04:22.085
<00:04:19.545>the, <00:04:19.745>the <00:04:19.945>founder <00:04:20.145>of <00:04:20.345>base <00:04:20.545>camp, <00:04:20.745>uh, <00:04:20.945>DHH

86
00:04:22.635 --> 00:04:26.685
<00:04:22.635>told <00:04:22.810>about <00:04:22.985>their <00:04:23.159>move <00:04:23.335>away <00:04:23.510>from <00:04:23.685>the <00:04:23.860>cloud <00:04:24.034>back

87
00:04:26.865 --> 00:04:29.245
<00:04:26.865>to <00:04:27.145>on-premise <00:04:27.425>systems <00:04:27.705>and <00:04:27.985>bare <00:04:28.265>metal

88
00:04:29.345 --> 00:04:32.285
<00:04:29.345>and <00:04:29.578>saving <00:04:29.811>them <00:04:30.045>a <00:04:30.278>million <00:04:30.511>per <00:04:30.745>year.

89
00:04:32.585 --> 00:04:35.245
<00:04:32.585>And <00:04:32.760>this <00:04:32.935>is <00:04:33.109>a <00:04:33.284>quote <00:04:33.460>from <00:04:33.635>a <00:04:33.810>VP <00:04:33.984>engineering

90
00:04:35.245 --> 00:04:36.525
<00:04:35.245>of <00:04:35.475>a <00:04:35.705>fast <00:04:35.936>growing <00:04:36.166>scale <00:04:36.397>up.

91
00:04:36.745 --> 00:04:39.965
<00:04:36.745>So <00:04:36.861>I <00:04:36.978>had <00:04:37.095>the <00:04:37.211>pleasure <00:04:37.328>during <00:04:37.445>the <00:04:37.561>past <00:04:37.678>like <00:04:37.795>two <00:04:37.911>years <00:04:38.028>to <00:04:38.145>talk

92
00:04:39.965 --> 00:04:42.845
<00:04:39.965>to <00:04:40.245>many, <00:04:40.525>uh, <00:04:40.805>engineering <00:04:41.085>managers, <00:04:41.365>CTOs,

93
00:04:43.145 --> 00:04:44.805
<00:04:43.145>and <00:04:43.424>ask <00:04:43.705>them <00:04:43.984>lots <00:04:44.265>of <00:04:44.544>questions.

94
00:04:45.145 --> 00:04:48.365
<00:04:45.145>And <00:04:45.284>this <00:04:45.424>was <00:04:45.565>one <00:04:45.705>of <00:04:45.844>the <00:04:45.984>quotes, <00:04:46.125>uh, <00:04:46.265>that <00:04:46.405>I <00:04:46.544>got,

95
00:04:48.515 --> 00:04:51.445
<00:04:48.515>that <00:04:48.715>they <00:04:48.914>basically <00:04:49.115>saved <00:04:49.315>350 <00:04:49.515>K <00:04:49.715>per <00:04:49.914>month

96
00:04:51.465 --> 00:04:54.165
<00:04:51.465>by <00:04:51.665>just <00:04:51.865>shutting <00:04:52.065>down <00:04:52.265>unused <00:04:52.465>VMs <00:04:52.665>and <00:04:52.865>services.

97
00:04:54.665 --> 00:04:57.685
<00:04:54.665>So <00:04:54.945>there <00:04:55.225>is <00:04:55.505>a <00:04:55.785>large <00:04:56.065>cost

98
00:04:58.225 --> 00:05:02.085
<00:04:58.225>and <00:04:58.458>high <00:04:58.691>expenses <00:04:58.925>associated <00:04:59.158>with <00:04:59.391>cloud <00:04:59.625>computing.

99
00:05:02.305 --> 00:05:04.165
<00:05:02.305>So <00:05:02.585>this <00:05:02.865>is <00:05:03.145>the <00:05:03.425>first <00:05:03.705>reason.

100
00:05:05.105 --> 00:05:08.685
<00:05:05.105>Second <00:05:05.280>thing <00:05:05.455>is <00:05:05.630>if <00:05:05.805>you <00:05:05.980>move <00:05:06.155>into <00:05:06.330>the <00:05:06.505>cloud,

101
00:05:08.825 --> 00:05:11.485
<00:05:08.825>it <00:05:09.025>usually <00:05:09.224>goes <00:05:09.425>along <00:05:09.625>with <00:05:09.825>a <00:05:10.025>microservice <00:05:10.224>system.

102
00:05:12.345 --> 00:05:15.365
<00:05:12.345>And <00:05:12.625>operating <00:05:12.905>microservice <00:05:13.185>systems <00:05:13.465>is <00:05:13.745>hard.

103
00:05:15.825 --> 00:05:20.085
<00:05:15.825>So <00:05:16.000>this <00:05:16.175>quote, <00:05:16.349>um, <00:05:16.525>basically <00:05:16.700>says, <00:05:16.875>okay, <00:05:17.050>we <00:05:17.224>have

104
00:05:21.045 --> 00:05:23.605
<00:05:21.045>services, <00:05:21.278>we <00:05:21.511>have <00:05:21.745>dozens, <00:05:21.978>hundreds <00:05:22.211>of <00:05:22.445>them,

105
00:05:24.395 --> 00:05:27.865
<00:05:24.395>but <00:05:24.534>there <00:05:24.674>are <00:05:24.815>some <00:05:24.955>where <00:05:25.094>we <00:05:25.234>don't <00:05:25.375>really <00:05:25.515>know <00:05:25.655>what <00:05:25.794>they,

106
00:05:27.935 --> 00:05:30.105
<00:05:27.935>what <00:05:28.110>they <00:05:28.285>do, <00:05:28.460>and <00:05:28.635>if <00:05:28.810>they <00:05:28.985>actually <00:05:29.160>still <00:05:29.335>need.

107
00:05:30.485 --> 00:05:33.545
<00:05:30.485>So, <00:05:30.685>uh, <00:05:30.885>you <00:05:31.085>have <00:05:31.285>complexity <00:05:31.485>there <00:05:31.685>as <00:05:31.885>well.

108
00:05:34.485 --> 00:05:36.585
<00:05:34.485>And <00:05:34.835>it's <00:05:35.185>basically <00:05:35.535>the <00:05:35.885>thing

109
00:05:36.585 --> 00:05:39.025
<00:05:36.585>that <00:05:36.740>probably <00:05:36.896>in <00:05:37.051>the <00:05:37.207>two <00:05:37.362>thousands <00:05:37.518>you <00:05:37.673>had <00:05:37.829>this <00:05:37.984>computer

110
00:05:39.025 --> 00:05:42.465
<00:05:39.025>under <00:05:39.200>the <00:05:39.375>desk <00:05:39.549>of, <00:05:39.724>uh, <00:05:39.900>the <00:05:40.075>most <00:05:40.250>senior <00:05:40.424>developers

111
00:05:43.205 --> 00:05:46.065
<00:05:43.205>and <00:05:43.380>they <00:05:43.555>had <00:05:43.729>to <00:05:43.905>be <00:05:44.080>running <00:05:44.255>all <00:05:44.430>the <00:05:44.604>time.

112
00:05:46.245 --> 00:05:47.545
<00:05:46.245>You <00:05:46.440>didn't <00:05:46.635>really <00:05:46.830>know <00:05:47.025>what <00:05:47.220>they're <00:05:47.415>doing,

113
00:05:47.605 --> 00:05:49.385
<00:05:47.605>but <00:05:47.838>you <00:05:48.071>also <00:05:48.305>couldn't <00:05:48.538>shut <00:05:48.771>them <00:05:49.005>off.

114
00:05:49.445 --> 00:05:50.625
<00:05:49.445>So <00:05:49.657>because <00:05:49.869>then <00:05:50.082>you <00:05:50.294>were <00:05:50.507>down.

115
00:05:50.925 --> 00:05:54.105
<00:05:50.925>So, <00:05:51.041>and <00:05:51.158>this <00:05:51.275>is <00:05:51.391>kind <00:05:51.508>of <00:05:51.625>the <00:05:51.741>same <00:05:51.858>thing <00:05:51.975>just <00:05:52.091>in <00:05:52.208>the <00:05:52.325>cloud,

116
00:05:54.405 --> 00:05:56.665
<00:05:54.405>and <00:05:54.755>it's, <00:05:55.104>in <00:05:55.455>my <00:05:55.804>opinion,

117
00:05:56.665 --> 00:05:58.245
<00:05:56.665>Even <00:05:56.865>worse <00:05:57.065>if <00:05:57.265>you <00:05:57.465>have <00:05:57.665>something <00:05:57.865>like <00:05:58.065>this.

118
00:06:00.105 --> 00:06:03.805
<00:06:00.105>And <00:06:00.245>last <00:06:00.385>but <00:06:00.525>not <00:06:00.665>least, <00:06:00.805>if <00:06:00.945>you <00:06:01.085>have <00:06:01.225>a <00:06:01.365>problem <00:06:01.505>in

119
00:06:04.445 --> 00:06:05.885
<00:06:04.445>a <00:06:04.704>Microsoft <00:06:04.963>system <00:06:05.222>in <00:06:05.481>the <00:06:05.741>cloud,

120
00:06:05.905 --> 00:06:07.405
<00:06:05.905>you <00:06:06.242>have <00:06:06.580>a <00:06:06.917>distributed <00:06:07.255>system.

121
00:06:08.345 --> 00:06:10.165
<00:06:08.345>And <00:06:08.520>I <00:06:08.695>don't <00:06:08.870>know <00:06:09.045>if <00:06:09.220>you <00:06:09.395>heard <00:06:09.570>this <00:06:09.745>already.

122
00:06:10.555 --> 00:06:12.765
<00:06:10.555>There's <00:06:10.788>this <00:06:11.021>saying <00:06:11.255>like, <00:06:11.488>the <00:06:11.721>first <00:06:11.955>rule

123
00:06:12.765 --> 00:06:15.845
<00:06:12.765>of <00:06:12.940>distributed <00:06:13.115>systems <00:06:13.289>is <00:06:13.465>don't <00:06:13.640>build <00:06:13.815>a <00:06:13.990>distributed <00:06:14.164>system.

124
00:06:16.825 --> 00:06:21.615
<00:06:16.825>Um, <00:06:16.980>because <00:06:17.136>if <00:06:17.291>you <00:06:17.447>have <00:06:17.602>a <00:06:17.758>problem, <00:06:17.913>it's <00:06:18.069>in <00:06:18.224>incre,

125
00:06:21.965 --> 00:06:24.495
<00:06:21.965>it's <00:06:22.431>significantly, <00:06:22.898>significantly <00:06:23.364>harder

126
00:06:24.875 --> 00:06:27.255
<00:06:24.875>to <00:06:25.050>pinpoint <00:06:25.225>the <00:06:25.400>root <00:06:25.575>cause <00:06:25.750>to <00:06:25.925>pinpoint <00:06:26.100>the <00:06:26.275>problem

127
00:06:27.675 --> 00:06:29.695
<00:06:27.675>and <00:06:27.955>to <00:06:28.235>fix, <00:06:28.515>uh, <00:06:28.795>the <00:06:29.075>thing.

128
00:06:29.695 --> 00:06:32.255
<00:06:29.695>And <00:06:29.870>this <00:06:30.045>is <00:06:30.219>just <00:06:30.395>another <00:06:30.570>quote <00:06:30.745>saying <00:06:30.920>that, <00:06:31.094>okay,

129
00:06:32.255 --> 00:06:35.815
<00:06:32.255>there <00:06:32.410>was <00:06:32.566>one <00:06:32.721>of <00:06:32.877>their <00:06:33.032>core <00:06:33.188>services <00:06:33.343>down, <00:06:33.499>like <00:06:33.655>some,

130
00:06:35.815 --> 00:06:37.295
<00:06:35.815>some <00:06:36.081>core <00:06:36.347>features <00:06:36.614>were <00:06:36.880>not <00:06:37.147>working,

131
00:06:37.395 --> 00:06:39.215
<00:06:37.395>and <00:06:37.674>it <00:06:37.955>took <00:06:38.234>them <00:06:38.515>three <00:06:38.794>days

132
00:06:39.215 --> 00:06:41.335
<00:06:39.215>before <00:06:39.448>they <00:06:39.681>really <00:06:39.915>identified <00:06:40.148>the <00:06:40.381>root <00:06:40.615>cause

133
00:06:41.335 --> 00:06:42.415
<00:06:41.335>of <00:06:41.659>all <00:06:41.983>their <00:06:42.307>troubles.

134
00:06:43.115 --> 00:06:45.175
<00:06:43.115>And <00:06:43.465>this <00:06:43.815>is <00:06:44.165>an <00:06:44.515>issue.

135
00:06:45.315 --> 00:06:46.615
<00:06:45.315>So <00:06:45.510>if <00:06:45.705>it <00:06:45.900>takes <00:06:46.095>you <00:06:46.290>three <00:06:46.485>days

136
00:06:46.615 --> 00:06:48.615
<00:06:46.615>to <00:06:46.790>fix <00:06:46.965>a <00:06:47.140>major <00:06:47.315>problem, <00:06:47.490>you <00:06:47.665>are <00:06:47.840>in <00:06:48.015>trouble.

137
00:06:49.715 --> 00:06:54.305
<00:06:49.715>So <00:06:51.115>going

138
00:06:54.305 --> 00:06:56.265
<00:06:54.305>to <00:06:54.655>the <00:06:55.005>cloud, <00:06:55.355>using <00:06:55.705>microservices

139
00:06:56.485 --> 00:06:58.185
<00:06:56.485>and <00:06:56.765>so <00:06:57.045>on, <00:06:57.325>have <00:06:57.605>the <00:06:57.885>benefits.

140
00:06:58.285 --> 00:07:00.785
<00:06:58.284>So <00:06:58.460>I'm <00:06:58.635>not <00:06:58.809>saying <00:06:58.984>you <00:06:59.159>must <00:06:59.335>not <00:06:59.510>do <00:06:59.684>it,

141
00:07:01.165 --> 00:07:03.065
<00:07:01.165>we <00:07:01.445>are <00:07:01.725>also <00:07:02.005>using <00:07:02.285>cloud <00:07:02.565>features.

142
00:07:03.085 --> 00:07:04.745
<00:07:03.085>So <00:07:03.318>we <00:07:03.551>are <00:07:03.784>not <00:07:04.018>black <00:07:04.251>and <00:07:04.484>white,

143
00:07:05.485 --> 00:07:09.265
<00:07:05.485>but <00:07:05.685>they <00:07:05.885>not <00:07:06.085>automatically <00:07:06.285>solve <00:07:06.485>all <00:07:06.685>your <00:07:06.885>problems.

144
00:07:09.265 --> 00:07:10.385
<00:07:09.265>There <00:07:09.466>is <00:07:09.668>a <00:07:09.869>price <00:07:10.071>to <00:07:10.272>pay,

145
00:07:11.165 --> 00:07:15.365
<00:07:11.165>and <00:07:11.340>you <00:07:11.515>always <00:07:11.690>have <00:07:11.865>to <00:07:12.040>be <00:07:12.215>sort <00:07:12.390>of <00:07:12.565>judging

146
00:07:15.745 --> 00:07:19.315
<00:07:15.745>and <00:07:15.978>looking <00:07:16.211>what's <00:07:16.445>actually <00:07:16.678>what <00:07:16.911>I <00:07:17.145>need

147
00:07:19.315 --> 00:07:21.155
<00:07:19.315>and <00:07:19.490>does <00:07:19.665>it <00:07:19.840>really <00:07:20.015>solve <00:07:20.190>a <00:07:20.365>problem <00:07:20.540>for <00:07:20.715>me?

148
00:07:21.695 --> 00:07:25.715
<00:07:21.695>So <00:07:21.974>what <00:07:22.255>we <00:07:22.534>did, <00:07:22.815>excuse <00:07:23.094>me,

149
00:07:29.505 --> 00:07:31.515
<00:07:29.505>I've <00:07:29.680>got <00:07:29.855>a <00:07:30.030>bit <00:07:30.205>of <00:07:30.380>a <00:07:30.555>thought <00:07:30.730>throat <00:07:30.905>today.

150
00:07:31.695 --> 00:07:32.235
<00:07:31.695>So <00:07:32.181>sorry.

151
00:07:36.795 --> 00:07:37.975
<00:07:36.795>So <00:07:37.149>we <00:07:37.503>came <00:07:37.857>up,

152
00:07:38.075 --> 00:07:41.335
<00:07:38.075>or <00:07:38.250>we <00:07:38.425>actually <00:07:38.599>had <00:07:38.775>from <00:07:38.950>the <00:07:39.125>beginning <00:07:39.300>a <00:07:39.474>set

153
00:07:41.335 --> 00:07:45.415
<00:07:41.335>of <00:07:41.534>guiding <00:07:41.734>principles <00:07:41.935>that <00:07:42.135>really <00:07:42.335>helped <00:07:42.534>us <00:07:42.734>to

154
00:07:46.705 --> 00:07:49.815
<00:07:46.705>steer <00:07:46.984>our <00:07:47.265>development <00:07:47.544>and <00:07:47.825>make <00:07:48.104>decisions.

155
00:07:49.835 --> 00:07:53.615
<00:07:49.835>And <00:07:50.034>this <00:07:50.234>guiding <00:07:50.435>principles <00:07:50.635>have <00:07:50.835>been <00:07:51.034>mostly <00:07:51.234>coined

156
00:07:53.615 --> 00:07:55.695
<00:07:53.615>by <00:07:53.965>our <00:07:54.315>founder, <00:07:54.665>uh, <00:07:55.015>founders.

157
00:07:56.755 --> 00:07:59.455
<00:07:56.755>And <00:07:57.034>they <00:07:57.315>were <00:07:57.594>actually <00:07:57.875>quite <00:07:58.155>experienced.

158
00:07:59.555 --> 00:08:02.695
<00:07:59.555>So <00:07:59.755>for <00:07:59.955>them, <00:08:00.155>it <00:08:00.355>wasn't <00:08:00.555>the <00:08:00.755>first <00:08:00.955>company.

159
00:08:02.765 --> 00:08:04.135
<00:08:02.765>They <00:08:03.073>already <00:08:03.381>had <00:08:03.689>sold <00:08:03.998>one,

160
00:08:04.315 --> 00:08:07.175
<00:08:04.315>and <00:08:04.781>their <00:08:05.248>CTO <00:08:05.715>at

161
00:08:07.175 --> 00:08:09.535
<00:08:07.175>that <00:08:07.408>time <00:08:07.641>also <00:08:07.875>worked <00:08:08.108>in <00:08:08.341>these <00:08:08.575>companies,

162
00:08:09.595 --> 00:08:12.935
<00:08:09.595>and <00:08:09.722>he <00:08:09.849>had <00:08:09.976>built <00:08:10.104>them <00:08:10.231>up <00:08:10.358>from <00:08:10.485>the <00:08:10.613>ground <00:08:10.740>up <00:08:10.867>as <00:08:10.995>well.

163
00:08:13.235 --> 00:08:15.855
<00:08:13.235>So <00:08:13.410>he <00:08:13.585>know, <00:08:13.760>knew <00:08:13.935>what <00:08:14.110>things <00:08:14.285>can <00:08:14.460>go <00:08:14.635>wrong

164
00:08:15.875 --> 00:08:17.335
<00:08:15.875>and <00:08:16.313>how <00:08:16.751>complexity <00:08:17.188>behaves.

165
00:08:17.675 --> 00:08:22.055
<00:08:17.675>So <00:08:17.875>he <00:08:18.075>coined <00:08:18.275>some <00:08:18.475>guiding <00:08:18.675>principles <00:08:18.875>that <00:08:19.075>really

166
00:08:22.585 --> 00:08:25.895
<00:08:22.585>drove <00:08:22.818>our <00:08:23.051>development, <00:08:23.284>um, <00:08:23.518>over <00:08:23.751>the <00:08:23.984>time.

167
00:08:26.315 --> 00:08:30.055
<00:08:26.315>And <00:08:26.455>these <00:08:26.594>principles <00:08:26.735>in <00:08:26.875>and <00:08:27.015>of <00:08:27.155>themselves, <00:08:27.295>they <00:08:27.435>are <00:08:27.575>not <00:08:27.715>new.

168
00:08:30.395 --> 00:08:33.745
<00:08:30.395>So <00:08:30.594>you've <00:08:30.794>heard <00:08:30.995>them <00:08:31.195>and <00:08:31.395>they're <00:08:31.594>not <00:08:31.794>surprising,

169
00:08:34.565 --> 00:08:38.305
<00:08:34.565>but <00:08:34.765>they <00:08:34.965>were <00:08:35.165>actually <00:08:35.365>really, <00:08:35.565>really <00:08:35.765>helpful <00:08:35.965>in

170
00:08:39.505 --> 00:08:40.795
<00:08:39.505>driving <00:08:40.085>our <00:08:40.665>decisions

171
00:08:40.935 --> 00:08:43.035
<00:08:40.934>and <00:08:41.109>coming <00:08:41.284>to <00:08:41.459>the <00:08:41.635>solutions <00:08:41.809>that <00:08:41.984>we <00:08:42.159>came <00:08:42.334>to.

172
00:08:43.905 --> 00:08:46.685
<00:08:43.905>And <00:08:44.060>this <00:08:44.216>is <00:08:44.371>one <00:08:44.527>of <00:08:44.682>the <00:08:44.838>important <00:08:44.993>things <00:08:45.149>to <00:08:45.305>understand.

173
00:08:49.165 --> 00:08:50.395
<00:08:49.165>Let's <00:08:49.386>start <00:08:49.607>with <00:08:49.829>the <00:08:50.050>first <00:08:50.271>one.

174
00:08:50.655 --> 00:08:52.795
<00:08:50.655>You <00:08:50.888>definitely <00:08:51.121>know <00:08:51.355>there's <00:08:51.588>one, <00:08:51.821>it's <00:08:52.055>kiss,

175
00:08:52.905 --> 00:08:53.955
<00:08:52.905>keep <00:08:53.141>it <00:08:53.377>simple, <00:08:53.613>it's <00:08:53.850>stupid.

176
00:08:55.845 --> 00:09:00.205
<00:08:55.845>And <00:08:56.020>while <00:08:56.195>everyone <00:08:56.370>knows <00:08:56.545>it, <00:08:56.720>not <00:08:56.895>everyone <00:08:57.070>practices <00:08:57.245>it.

177
00:09:00.545 --> 00:09:02.045
<00:09:00.545>And <00:09:00.882>one <00:09:01.219>of <00:09:01.557>the <00:09:01.895>things,

178
00:09:02.105 --> 00:09:06.485
<00:09:02.105>or <00:09:02.232>one <00:09:02.359>of <00:09:02.486>the <00:09:02.614>reasons <00:09:02.741>for <00:09:02.868>that <00:09:02.995>is <00:09:03.123>that <00:09:03.250>this <00:09:03.377>term <00:09:03.505>simple

179
00:09:09.855 --> 00:09:12.275
<00:09:09.855>is <00:09:10.135>sometimes <00:09:10.415>understood <00:09:10.695>very, <00:09:10.975>very <00:09:11.255>differently.

180
00:09:12.695 --> 00:09:14.355
<00:09:12.695>So <00:09:12.870>is <00:09:13.045>it <00:09:13.220>simple <00:09:13.395>for <00:09:13.570>me <00:09:13.745>to <00:09:13.920>build <00:09:14.095>it

181
00:09:14.735 --> 00:09:19.315
<00:09:14.735>or <00:09:14.890>is <00:09:15.046>it <00:09:15.201>simple <00:09:15.357>for <00:09:15.512>anyone <00:09:15.668>else <00:09:15.823>to <00:09:15.979>understand, <00:09:16.135>maintain

182
00:09:19.415 --> 00:09:21.075
<00:09:19.415>and <00:09:19.881>continue <00:09:20.348>developing <00:09:20.814>it?

183
00:09:22.495 --> 00:09:23.595
<00:09:22.495>And <00:09:22.825>what <00:09:23.155>we <00:09:23.485>mean

184
00:09:23.975 --> 00:09:25.075
<00:09:23.975>and <00:09:24.305>what's <00:09:24.635>actually <00:09:24.965>meant

185
00:09:25.075 --> 00:09:27.675
<00:09:25.075>by <00:09:25.275>the <00:09:25.475>statement <00:09:25.675>is <00:09:25.875>simple <00:09:26.075>in <00:09:26.275>the <00:09:26.475>sense

186
00:09:27.775 --> 00:09:29.515
<00:09:27.775>of <00:09:28.125>the <00:09:28.475>opposite <00:09:28.824>of <00:09:29.175>complex.

187
00:09:31.535 --> 00:09:35.195
<00:09:31.535>So <00:09:31.709>it's <00:09:31.885>not <00:09:32.060>primitive <00:09:32.235>and <00:09:32.410>it's <00:09:32.584>also <00:09:32.760>not <00:09:32.935>obvious.

188
00:09:35.615 --> 00:09:36.915
<00:09:35.615>And <00:09:36.005>the, <00:09:36.395>the <00:09:36.785>obvious

189
00:09:37.215 --> 00:09:41.195
<00:09:37.215>and <00:09:37.448>easy <00:09:37.681>thing <00:09:37.915>to <00:09:38.148>do, <00:09:38.381>for <00:09:38.615>example,

190
00:09:41.325 --> 00:09:42.915
<00:09:41.325>could <00:09:41.605>be <00:09:41.885>like <00:09:42.165>if, <00:09:42.445>if <00:09:42.725>to,

191
00:09:42.975 --> 00:09:44.715
<00:09:42.975>to <00:09:43.150>give <00:09:43.325>you <00:09:43.500>an <00:09:43.675>example <00:09:43.850>that's <00:09:44.025>not <00:09:44.200>from <00:09:44.375>coding.

192
00:09:45.055 --> 00:09:46.395
<00:09:45.055>My <00:09:45.457>wife, <00:09:45.858>she's <00:09:46.261>Slovak.

193
00:09:46.455 --> 00:09:49.755
<00:09:46.455>So <00:09:46.582>if <00:09:46.709>she <00:09:46.836>speaks <00:09:46.964>Slovak <00:09:47.091>to <00:09:47.218>me, <00:09:47.345>it's <00:09:47.473>very <00:09:47.600>simple <00:09:47.727>for <00:09:47.855>her,

194
00:09:50.055 --> 00:09:52.315
<00:09:50.055>but <00:09:50.255>it's <00:09:50.454>incredibly <00:09:50.655>hard <00:09:50.854>for <00:09:51.055>me <00:09:51.255>to <00:09:51.454>understand

195
00:09:52.535 --> 00:09:53.555
<00:09:52.535>or <00:09:52.841>even <00:09:53.146>to <00:09:53.453>answer.

196
00:09:53.555 --> 00:09:55.835
<00:09:53.555>And <00:09:53.729>so, <00:09:53.905>so <00:09:54.079>that's <00:09:54.255>very, <00:09:54.430>very <00:09:54.604>difficult <00:09:54.780>for <00:09:54.954>me.

197
00:09:57.295 --> 00:09:59.275
<00:09:57.295>So <00:09:57.574>we <00:09:57.854>don't <00:09:58.135>want <00:09:58.415>the <00:09:58.694>easy

198
00:09:59.695 --> 00:10:02.435
<00:09:59.695>and <00:09:59.895>obvious <00:10:00.095>solution, <00:10:00.295>also <00:10:00.495>not <00:10:00.695>the <00:10:00.895>primitive <00:10:01.095>one,

199
00:10:02.495 --> 00:10:04.635
<00:10:02.495>but <00:10:02.650>it <00:10:02.806>must, <00:10:02.961>it <00:10:03.117>should <00:10:03.272>be <00:10:03.428>the <00:10:03.583>opposite <00:10:03.739>of <00:10:03.895>complex.

200
00:10:04.655 --> 00:10:05.675
<00:10:04.655>And <00:10:04.884>usually <00:10:05.113>it's <00:10:05.343>a <00:10:05.573>journey.

201
00:10:05.695 --> 00:10:09.315
<00:10:05.695>You <00:10:05.850>start <00:10:06.006>with <00:10:06.161>something <00:10:06.317>primitive <00:10:06.472>and <00:10:06.628>then <00:10:06.783>you <00:10:06.939>add <00:10:07.095>detail.

202
00:10:09.495 --> 00:10:11.595
<00:10:09.495>You <00:10:09.775>come <00:10:10.055>to <00:10:10.335>something <00:10:10.615>very <00:10:10.895>complex

203
00:10:12.055 --> 00:10:13.555
<00:10:12.055>or <00:10:12.280>might <00:10:12.505>come <00:10:12.729>to <00:10:12.954>something <00:10:13.180>very <00:10:13.405>complex

204
00:10:14.005 --> 00:10:15.395
<00:10:14.005>until <00:10:14.317>you <00:10:14.630>really <00:10:14.943>understand <00:10:15.256>the

205
00:10:15.395 --> 00:10:16.435
<00:10:15.395>essence <00:10:15.629>of <00:10:15.863>what <00:10:16.097>you're <00:10:16.330>doing.

206
00:10:16.495 --> 00:10:19.195
<00:10:16.495>And <00:10:16.670>then <00:10:16.845>you <00:10:17.020>can <00:10:17.195>reduce <00:10:17.370>the <00:10:17.545>complexity <00:10:17.720>and <00:10:17.895>again,

207
00:10:19.455 --> 00:10:21.875
<00:10:19.455>and <00:10:19.655>they <00:10:19.855>come <00:10:20.055>up <00:10:20.255>with <00:10:20.455>a <00:10:20.655>simple <00:10:20.855>solution

208
00:10:21.875 --> 00:10:24.755
<00:10:21.875>that <00:10:22.050>really <00:10:22.225>fits <00:10:22.400>the <00:10:22.575>definition <00:10:22.750>of <00:10:22.925>opposite <00:10:23.100>of <00:10:23.275>complex.

209
00:10:26.115 --> 00:10:28.015
<00:10:26.115>So <00:10:26.395>let's <00:10:26.675>keep <00:10:26.955>it <00:10:27.235>simple, <00:10:27.515>stupid.

210
00:10:28.925 --> 00:10:32.255
<00:10:28.925>Next <00:10:29.275>one <00:10:29.625>is <00:10:29.974>boring <00:10:30.324>technology.

211
00:10:32.595 --> 00:10:35.375
<00:10:32.595>Boring <00:10:32.795>technology <00:10:32.995>in <00:10:33.195>our <00:10:33.395>opinion <00:10:33.595>is <00:10:33.795>good <00:10:33.995>technology

212
00:10:35.375 --> 00:10:37.575
<00:10:35.375>because <00:10:35.575>we <00:10:35.775>want <00:10:35.975>to <00:10:36.175>sleep <00:10:36.375>well <00:10:36.575>at <00:10:36.775>night.

213
00:10:37.875 --> 00:10:42.555
<00:10:37.875>So <00:10:38.050>thing <00:10:38.225>is <00:10:38.400>the <00:10:38.575>newer <00:10:38.750>something <00:10:38.925>is <00:10:39.100>the <00:10:39.275>more,

214
00:10:43.375 --> 00:10:45.635
<00:10:43.375>the <00:10:43.550>higher <00:10:43.725>is <00:10:43.900>the <00:10:44.075>probability <00:10:44.250>that <00:10:44.425>things <00:10:44.600>go <00:10:44.775>wrong.

215
00:10:45.695 --> 00:10:48.195
<00:10:45.695>And <00:10:45.822>if <00:10:45.949>you <00:10:46.076>have <00:10:46.204>a <00:10:46.331>large <00:10:46.458>number <00:10:46.585>of <00:10:46.713>users <00:10:46.840>like <00:10:46.967>we <00:10:47.095>have

216
00:10:49.095 --> 00:10:51.075
<00:10:49.095>and <00:10:49.375>a <00:10:49.655>lot <00:10:49.935>of <00:10:50.215>traffic, <00:10:50.495>everything

217
00:10:51.075 --> 00:10:53.235
<00:10:51.075>that <00:10:51.308>can <00:10:51.541>go <00:10:51.775>wrong <00:10:52.008>will <00:10:52.241>go <00:10:52.475>wrong.

218
00:10:53.255 --> 00:10:55.075
<00:10:53.255>So <00:10:53.605>that's <00:10:53.955>basically <00:10:54.305>Murphy's <00:10:54.655>law.

219
00:10:55.075 --> 00:10:58.515
<00:10:55.075>And <00:10:55.275>usually <00:10:55.475>it <00:10:55.675>goes <00:10:55.875>wrong <00:10:56.075>when <00:10:56.275>you <00:10:56.475>can't,

220
00:10:58.645 --> 00:11:01.195
<00:10:58.645>don't <00:10:58.845>really <00:10:59.045>need <00:10:59.245>it, <00:10:59.444>and <00:10:59.645>it <00:10:59.845>goes <00:11:00.045>wrong

221
00:11:01.225 --> 00:11:02.435
<00:11:01.225>quicker <00:11:01.588>than <00:11:01.951>you <00:11:02.314>think.

222
00:11:02.735 --> 00:11:05.555
<00:11:02.735>So <00:11:02.935>we <00:11:03.135>want <00:11:03.335>to <00:11:03.535>minimize <00:11:03.735>the <00:11:03.935>this <00:11:04.135>effect.

223
00:11:05.555 --> 00:11:08.795
<00:11:05.555>We <00:11:05.729>want <00:11:05.905>have <00:11:06.079>to <00:11:06.255>have <00:11:06.430>things <00:11:06.604>that <00:11:06.780>are <00:11:06.954>proven,

224
00:11:09.345 --> 00:11:13.155
<00:11:09.345>that <00:11:09.500>are <00:11:09.656>predictable <00:11:09.811>and <00:11:09.967>also <00:11:10.122>have <00:11:10.278>no <00:11:10.433>surprises <00:11:10.589>for <00:11:10.745>us.

225
00:11:13.335 --> 00:11:16.035
<00:11:13.335>So <00:11:13.490>we <00:11:13.646>want <00:11:13.801>to <00:11:13.957>have <00:11:14.112>our <00:11:14.268>system <00:11:14.423>to <00:11:14.579>be <00:11:14.735>boring.

226
00:11:16.835 --> 00:11:20.075
<00:11:16.835>Actually, <00:11:17.010>we <00:11:17.185>had <00:11:17.360>recently <00:11:17.535>had <00:11:17.710>a <00:11:17.885>short <00:11:18.060>discussion <00:11:18.235>about

227
00:11:20.075 --> 00:11:22.755
<00:11:20.075>should <00:11:20.308>it <00:11:20.541>really <00:11:20.775>be <00:11:21.008>named <00:11:21.241>boring <00:11:21.475>technology?

228
00:11:22.755 --> 00:11:24.955
<00:11:22.755>Wouldn't <00:11:22.930>it <00:11:23.105>be <00:11:23.280>better <00:11:23.455>to <00:11:23.630>call <00:11:23.805>it <00:11:23.980>proven <00:11:24.155>technology?

229
00:11:24.955 --> 00:11:27.515
<00:11:24.955>Because <00:11:25.235>it's <00:11:25.515>shown <00:11:25.795>that <00:11:26.075>it <00:11:26.355>works

230
00:11:27.695 --> 00:11:31.385
<00:11:27.695>and <00:11:27.928>all <00:11:28.161>the <00:11:28.395>problems <00:11:28.628>have <00:11:28.861>been <00:11:29.095>solved,

231
00:11:32.725 --> 00:11:34.945
<00:11:32.725>but <00:11:32.925>I'm <00:11:33.125>still <00:11:33.325>more <00:11:33.525>in <00:11:33.725>favor <00:11:33.925>of <00:11:34.125>boring

232
00:11:34.945 --> 00:11:38.185
<00:11:34.945>because <00:11:35.100>this <00:11:35.256>is <00:11:35.411>the <00:11:35.567>effect <00:11:35.722>it <00:11:35.878>probably <00:11:36.033>has <00:11:36.189>on <00:11:36.345>you.

233
00:11:38.185 --> 00:11:40.265
<00:11:38.185>And <00:11:38.464>it's <00:11:38.744>also <00:11:39.025>during <00:11:39.305>the <00:11:39.584>developer,

234
00:11:40.325 --> 00:11:41.665
<00:11:40.325>it <00:11:40.566>sometimes <00:11:40.807>feels <00:11:41.048>a <00:11:41.289>bit <00:11:41.531>boring

235
00:11:41.665 --> 00:11:44.185
<00:11:41.665>because <00:11:41.865>you're <00:11:42.064>not <00:11:42.265>using <00:11:42.464>the <00:11:42.665>newest <00:11:42.865>fancy <00:11:43.064>stuff,

236
00:11:44.445 --> 00:11:47.345
<00:11:44.445>you're <00:11:44.620>just <00:11:44.795>working <00:11:44.970>with <00:11:45.145>things <00:11:45.320>that <00:11:45.495>are <00:11:45.670>already <00:11:45.845>there

237
00:11:47.365 --> 00:11:49.985
<00:11:47.365>for <00:11:47.565>five <00:11:47.765>years, <00:11:47.965>like, <00:11:48.165>or, <00:11:48.365>or <00:11:48.565>longer, <00:11:48.765>uh,

238
00:11:50.085 --> 00:11:52.505
<00:11:50.085>or <00:11:50.318>20 <00:11:50.551>years <00:11:50.785>like <00:11:51.018>dava, <00:11:51.251>25 <00:11:51.485>years.

239
00:11:53.305 --> 00:11:58.275
<00:11:53.305>So, <00:11:53.460>and <00:11:53.616>there's <00:11:53.771>also <00:11:53.927>this, <00:11:54.082>uh, <00:11:54.238>boring <00:11:54.393>technology <00:11:54.549>club, <00:11:54.704>um,

240
00:11:59.085 --> 00:12:01.395
<00:11:59.085>where <00:11:59.318>the <00:11:59.551>term <00:11:59.785>already <00:12:00.018>has <00:12:00.251>been <00:12:00.485>coined.

241
00:12:04.815 --> 00:12:07.035
<00:12:04.815>And <00:12:04.990>last <00:12:05.165>but <00:12:05.340>not <00:12:05.515>least, <00:12:05.690>we <00:12:05.865>have <00:12:06.040>the <00:12:06.215>principle

242
00:12:07.035 --> 00:12:08.115
<00:12:07.035>of <00:12:07.278>understand <00:12:07.521>what <00:12:07.764>you're <00:12:08.007>doing.

243
00:12:08.855 --> 00:12:10.115
<00:12:08.855>And <00:12:09.138>this <00:12:09.422>has <00:12:09.705>two <00:12:09.989>sides.

244
00:12:11.055 --> 00:12:14.395
<00:12:11.055>One <00:12:11.255>side <00:12:11.454>is <00:12:11.655>that <00:12:11.854>if <00:12:12.055>you <00:12:12.255>have <00:12:12.454>something

245
00:12:14.395 --> 00:12:17.515
<00:12:14.395>that <00:12:14.535>you <00:12:14.675>can't <00:12:14.814>easily <00:12:14.954>de <00:12:15.095>debug <00:12:15.235>and <00:12:15.375>analyze, <00:12:15.515>don't <00:12:15.655>use <00:12:15.795>it.

246
00:12:18.135 --> 00:12:21.385
<00:12:18.135>And <00:12:18.601>it <00:12:19.068>doesn't <00:12:19.535>mean

247
00:12:21.385 --> 00:12:23.785
<00:12:21.385>that <00:12:21.665>it <00:12:21.944>has <00:12:22.225>can <00:12:22.505>be <00:12:22.785>complicated.

248
00:12:23.785 --> 00:12:25.865
<00:12:23.785>Things <00:12:23.985>can <00:12:24.185>be <00:12:24.385>complicated <00:12:24.584>and <00:12:24.785>difficult <00:12:24.985>of <00:12:25.185>course,

249
00:12:25.965 --> 00:12:29.985
<00:12:25.965>but, <00:12:26.165>uh, <00:12:26.365>sometimes <00:12:26.565>it's <00:12:26.765>really, <00:12:26.965>um, <00:12:27.165>almost <00:12:27.365>impossible

250
00:12:29.985 --> 00:12:31.225
<00:12:29.985>to <00:12:30.208>understand <00:12:30.431>what <00:12:30.654>things <00:12:30.877>are <00:12:31.101>doing.

251
00:12:31.485 --> 00:12:35.265
<00:12:31.485>And <00:12:31.640>this <00:12:31.796>is <00:12:31.951>the <00:12:32.107>reason <00:12:32.262>why <00:12:32.418>we <00:12:32.573>don't <00:12:32.729>use <00:12:32.885>hibernate.

252
00:12:36.225 --> 00:12:38.755
<00:12:36.225>Hibernate <00:12:36.575>is, <00:12:36.925>is <00:12:37.275>great <00:12:37.625>tool,

253
00:12:39.945 --> 00:12:41.845
<00:12:39.945>but <00:12:40.120>in <00:12:40.295>our <00:12:40.470>opinion, <00:12:40.645>if <00:12:40.820>you've <00:12:40.995>got <00:12:41.170>a <00:12:41.345>problem,

254
00:12:41.865 --> 00:12:43.085
<00:12:41.865>if <00:12:42.084>you <00:12:42.304>run <00:12:42.523>into <00:12:42.743>a <00:12:42.963>bug

255
00:12:43.105 --> 00:12:45.885
<00:12:43.105>or <00:12:43.280>a <00:12:43.455>behavior <00:12:43.630>you <00:12:43.805>don't <00:12:43.980>expect, <00:12:44.155>it's <00:12:44.330>incredibly <00:12:44.505>hard

256
00:12:45.945 --> 00:12:47.085
<00:12:45.945>to <00:12:46.201>debug <00:12:46.458>and <00:12:46.714>to <00:12:46.971>analyze

257
00:12:47.085 --> 00:12:49.085
<00:12:47.085>and <00:12:47.260>to <00:12:47.435>understand <00:12:47.610>what's <00:12:47.785>really <00:12:47.960>happening <00:12:48.135>in <00:12:48.310>the <00:12:48.485>system.

258
00:12:49.585 --> 00:12:54.465
<00:12:49.585>So <00:12:49.818>we <00:12:50.051>don't <00:12:50.285>use <00:12:50.518>the <00:12:50.751>other <00:12:50.985>side

259
00:12:54.725 --> 00:12:58.425
<00:12:54.725>of <00:12:54.852>this <00:12:54.979>is <00:12:55.106>if <00:12:55.234>you <00:12:55.361>are <00:12:55.488>somewhere <00:12:55.615>in <00:12:55.743>the, <00:12:55.870>in <00:12:55.997>the <00:12:56.125>code

260
00:12:59.045 --> 00:13:00.545
<00:12:59.045>and <00:12:59.314>you're <00:12:59.584>trying <00:12:59.854>to <00:13:00.125>build <00:13:00.395>something

261
00:13:00.645 --> 00:13:03.225
<00:13:00.645>and <00:13:00.878>change <00:13:01.111>some <00:13:01.345>something, <00:13:01.578>look <00:13:01.811>around <00:13:02.045>you,

262
00:13:03.335 --> 00:13:05.465
<00:13:03.335>look <00:13:03.535>at <00:13:03.735>the <00:13:03.935>classes, <00:13:04.135>look <00:13:04.335>at <00:13:04.535>the <00:13:04.735>structure,

263
00:13:06.135 --> 00:13:07.785
<00:13:06.135>what <00:13:06.368>was <00:13:06.601>the <00:13:06.835>intention <00:13:07.068>of <00:13:07.301>the <00:13:07.535>author?

264
00:13:08.115 --> 00:13:09.785
<00:13:08.115>Where <00:13:08.315>did <00:13:08.515>he <00:13:08.715>or <00:13:08.915>she <00:13:09.115>want <00:13:09.315>to <00:13:09.515>go?

265
00:13:10.605 --> 00:13:14.665
<00:13:10.605>So <00:13:10.838>try <00:13:11.071>to <00:13:11.305>understand <00:13:11.538>where <00:13:11.771>you <00:13:12.005>are

266
00:13:14.885 --> 00:13:17.985
<00:13:14.885>before <00:13:15.118>you <00:13:15.351>work, <00:13:15.585>um, <00:13:15.818>or <00:13:16.051>make <00:13:16.285>changes.

267
00:13:18.365 --> 00:13:23.105
<00:13:18.365>So <00:13:18.645>now <00:13:18.925>let's <00:13:19.205>have <00:13:19.485>a <00:13:19.765>look

268
00:13:23.445 --> 00:13:26.585
<00:13:23.445>at <00:13:23.725>the <00:13:24.005>architecture, <00:13:24.285>how <00:13:24.565>things <00:13:24.845>work.

269
00:13:26.885 --> 00:13:30.225
<00:13:26.885>So <00:13:27.025>it's, <00:13:27.165>this <00:13:27.305>will <00:13:27.444>be <00:13:27.585>on <00:13:27.725>a <00:13:27.865>high <00:13:28.005>level <00:13:28.145>of <00:13:28.285>course,

270
00:13:30.645 --> 00:13:33.225
<00:13:30.645>and <00:13:30.878>uh, <00:13:31.111>just <00:13:31.345>give <00:13:31.578>you <00:13:31.811>an <00:13:32.045>impression

271
00:13:33.225 --> 00:13:34.825
<00:13:33.225>what <00:13:33.505>we <00:13:33.785>do <00:13:34.065>to <00:13:34.345>achieve <00:13:34.625>that.

272
00:13:36.015 --> 00:13:37.755
<00:13:36.015>And <00:13:36.248>if <00:13:36.481>there's <00:13:36.715>a <00:13:36.948>time, <00:13:37.181>of <00:13:37.415>course,

273
00:13:37.815 --> 00:13:41.155
<00:13:37.815>we <00:13:38.015>can <00:13:38.215>afterwards <00:13:38.415>discuss <00:13:38.615>a <00:13:38.815>bit <00:13:39.015>about, <00:13:39.215>um,

274
00:13:42.645 --> 00:13:45.265
<00:13:42.645>how <00:13:42.878>in <00:13:43.111>how, <00:13:43.345>what <00:13:43.578>the <00:13:43.811>details <00:13:44.045>are

275
00:13:45.365 --> 00:13:47.985
<00:13:45.365>or <00:13:45.565>probably <00:13:45.765>how <00:13:45.965>this <00:13:46.165>can <00:13:46.365>be <00:13:46.565>transferred <00:13:46.765>to

276
00:13:48.495 --> 00:13:49.945
<00:13:48.495>your <00:13:48.821>work <00:13:49.147>if <00:13:49.473>you're <00:13:49.800>interested.

277
00:13:52.045 --> 00:13:55.505
<00:13:52.045>So <00:13:52.245>we <00:13:52.444>have <00:13:52.645>a <00:13:52.844>scalable <00:13:53.045>and <00:13:53.245>manageable <00:13:53.444>system.

278
00:13:55.765 --> 00:13:57.745
<00:13:55.765>And <00:13:56.045>the, <00:13:56.324>the <00:13:56.605>basic <00:13:56.885>setup <00:13:57.165>is,

279
00:13:57.765 --> 00:14:00.785
<00:13:57.765>or <00:13:57.881>the, <00:13:57.998>the <00:13:58.115>claim <00:13:58.231>was, <00:13:58.348>uh, <00:13:58.465>we <00:13:58.581>can <00:13:58.698>run <00:13:58.814>on <00:13:58.931>a <00:13:59.048>single <00:13:59.165>server

280
00:14:01.165 --> 00:14:04.825
<00:14:01.165>and <00:14:01.365>we <00:14:01.564>have <00:14:01.765>about <00:14:01.964>43,000 <00:14:02.165>requests <00:14:02.365>per <00:14:02.564>minute.

281
00:14:05.165 --> 00:14:09.705
<00:14:05.165>So <00:14:05.365>these <00:14:05.564>9 <00:14:05.765>million <00:14:05.964>monthly <00:14:06.165>active <00:14:06.365>users <00:14:06.564>generating

282
00:14:09.705 --> 00:14:14.345
<00:14:09.705>30 <00:14:09.880>million <00:14:10.055>sessions <00:14:10.230>per <00:14:10.405>month <00:14:10.580>translates <00:14:10.755>into <00:14:10.930>on <00:14:11.105>average

283
00:14:14.755 --> 00:14:17.265
<00:14:14.755>43 <00:14:15.105>3000 <00:14:15.455>requests <00:14:15.805>per <00:14:16.155>minute.

284
00:14:17.645 --> 00:14:19.425
<00:14:17.645>And <00:14:17.925>these <00:14:18.204>can <00:14:18.485>be <00:14:18.765>actually <00:14:19.045>handled

285
00:14:19.805 --> 00:14:21.225
<00:14:19.805>by <00:14:20.124>a <00:14:20.444>single <00:14:20.763>application <00:14:21.083>server.

286
00:14:21.885 --> 00:14:24.345
<00:14:21.885>If <00:14:22.165>these <00:14:22.444>are <00:14:22.725>just <00:14:23.005>greeting <00:14:23.285>requests,

287
00:14:28.095 --> 00:14:30.195
<00:14:28.095>we <00:14:28.375>have <00:14:28.655>quite <00:14:28.935>a <00:14:29.215>big <00:14:29.495>system.

288
00:14:30.415 --> 00:14:35.115
<00:14:30.415>So <00:14:30.589>it's, <00:14:30.765>uh, <00:14:30.939>two <00:14:31.115>processors, <00:14:31.290>two <00:14:31.464>epic <00:14:31.640>processors <00:14:31.814>with,

289
00:14:35.225 --> 00:14:37.955
<00:14:35.225>with <00:14:35.505>64 <00:14:35.785>cores <00:14:36.065>and <00:14:36.345>128 <00:14:36.625>thread,

290
00:14:38.255 --> 00:14:42.475
<00:14:38.255>and <00:14:38.488>it <00:14:38.721>has <00:14:38.955>256 <00:14:39.188>gigabytes <00:14:39.421>of <00:14:39.655>ram.

291
00:14:42.935 --> 00:14:43.995
<00:14:42.935>So <00:14:43.125>it's <00:14:43.316>quite <00:14:43.507>a <00:14:43.698>big <00:14:43.889>machine.

292
00:14:44.735 --> 00:14:46.955
<00:14:44.735>Um, <00:14:44.935>but <00:14:45.135>it <00:14:45.335>can <00:14:45.535>handle <00:14:45.735>all <00:14:45.935>the <00:14:46.135>traffic.

293
00:14:47.335 --> 00:14:51.205
<00:14:47.335>And <00:14:47.462>of <00:14:47.589>course, <00:14:47.716>we <00:14:47.844>are <00:14:47.971>not <00:14:48.098>running <00:14:48.225>our <00:14:48.353>whole <00:14:48.480>system <00:14:48.607>on <00:14:48.735>a

294
00:14:51.205 --> 00:14:53.245
<00:14:51.205>single <00:14:51.485>application <00:14:51.765>curve <00:14:52.045>curve, <00:14:52.325>uh, <00:14:52.605>server.

295
00:14:53.555 --> 00:14:56.125
<00:14:53.555>That <00:14:53.834>would <00:14:54.114>be <00:14:54.395>rather <00:14:54.675>risky, <00:14:54.954>right?

296
00:14:56.865 --> 00:14:59.645
<00:14:56.865>So <00:14:57.145>we <00:14:57.425>have <00:14:57.705>a <00:14:57.985>replicated <00:14:58.265>system

297
00:15:02.225 --> 00:15:06.575
<00:15:02.225>with <00:15:02.458>three <00:15:02.691>more <00:15:02.925>instances <00:15:03.158>of <00:15:03.391>the <00:15:03.625>system.

298
00:15:07.195 --> 00:15:08.895
<00:15:07.195>And <00:15:07.350>of <00:15:07.506>course, <00:15:07.661>if <00:15:07.817>you <00:15:07.972>have <00:15:08.128>such <00:15:08.283>a <00:15:08.439>set <00:15:08.595>setup,

299
00:15:09.035 --> 00:15:10.575
<00:15:09.035>you <00:15:09.381>also <00:15:09.728>need <00:15:10.074>a <00:15:10.421>low

300
00:15:10.655 --> 00:15:14.485
<00:15:10.655>balancer <00:15:11.355>before <00:15:12.055>it.

301
00:15:15.145 --> 00:15:17.315
<00:15:15.145>And <00:15:15.611>the <00:15:16.078>next <00:15:16.545>thing

302
00:15:17.315 --> 00:15:22.195
<00:15:17.315>that <00:15:17.442>we <00:15:17.569>have <00:15:17.696>here <00:15:17.824>is <00:15:17.951>our <00:15:18.078>database <00:15:18.205>we <00:15:18.333>use <00:15:18.460>in <00:15:18.587>MyQ <00:15:18.715>UNA

303
00:15:22.195 --> 00:15:24.435
<00:15:22.195>cluster, <00:15:22.545>which <00:15:22.895>is <00:15:23.245>highly <00:15:23.595>scalable

304
00:15:24.695 --> 00:15:27.915
<00:15:24.695>and <00:15:24.870>helps <00:15:25.045>us <00:15:25.220>to <00:15:25.395>handle <00:15:25.570>all <00:15:25.745>the <00:15:25.920>yeah, <00:15:26.095>update

305
00:15:27.975 --> 00:15:31.235
<00:15:27.975>and, <00:15:28.115>uh, <00:15:28.255>yeah, <00:15:28.395>correct <00:15:28.535>requests <00:15:28.675>that <00:15:28.815>we <00:15:28.955>have <00:15:29.095>on <00:15:29.235>our <00:15:29.375>data.

306
00:15:32.095 --> 00:15:35.595
<00:15:32.095>And <00:15:32.295>of <00:15:32.495>course <00:15:32.695>people <00:15:32.895>are <00:15:33.095>searching <00:15:33.295>for <00:15:33.495>watches,

307
00:15:35.895 --> 00:15:37.875
<00:15:35.895>so <00:15:36.128>we <00:15:36.361>need <00:15:36.595>something <00:15:36.828>to <00:15:37.061>support <00:15:37.295>that.

308
00:15:38.255 --> 00:15:41.795
<00:15:38.255>We <00:15:38.395>have <00:15:38.535>a <00:15:38.675>search <00:15:38.814>cluster <00:15:38.955>of, <00:15:39.095>uh, <00:15:39.235>solar <00:15:39.375>based <00:15:39.515>on <00:15:39.655>solar

309
00:15:42.455 --> 00:15:45.675
<00:15:42.455>and, <00:15:42.610>um, <00:15:42.766>these <00:15:42.921>are <00:15:43.077>actually <00:15:43.232>running <00:15:43.388>together <00:15:43.543>on <00:15:43.699>the <00:15:43.855>same

310
00:15:46.035 --> 00:15:48.195
<00:15:46.035>hardware <00:15:46.268>as <00:15:46.501>the <00:15:46.735>application <00:15:46.968>server <00:15:47.201>are <00:15:47.435>running.

311
00:15:48.495 --> 00:15:52.785
<00:15:48.495>So <00:15:48.728>that's <00:15:48.961>the <00:15:49.195>setup <00:15:49.428>on <00:15:49.661>our <00:15:49.895>side.

312
00:15:52.965 --> 00:15:56.145
<00:15:52.965>And <00:15:53.165>then <00:15:53.365>before <00:15:53.565>that, <00:15:53.765>so <00:15:53.965>between <00:15:54.165>the <00:15:54.365>user

313
00:15:56.365 --> 00:15:59.585
<00:15:56.365>and <00:15:56.540>our <00:15:56.715>system, <00:15:56.890>there <00:15:57.065>is, <00:15:57.240>uh, <00:15:57.415>CloudFlare, <00:15:57.590>which <00:15:57.765>serves

314
00:15:59.585 --> 00:16:03.785
<00:15:59.585>as <00:15:59.760>our <00:15:59.935>content <00:16:00.110>delivery, <00:16:00.285>delivery <00:16:00.460>network, <00:16:00.635>um, <00:16:00.810>name <00:16:00.985>service

315
00:16:04.165 --> 00:16:05.785
<00:16:04.165>and <00:16:04.631>uh, <00:16:05.098>load <00:16:05.564>balancing.

316
00:16:07.205 --> 00:16:10.065
<00:16:07.205>We <00:16:07.405>also <00:16:07.605>like <00:16:07.805>benefit <00:16:08.005>from <00:16:08.205>its <00:16:08.405>security <00:16:08.605>features.

317
00:16:10.085 --> 00:16:12.185
<00:16:10.085>So <00:16:10.318>if <00:16:10.551>there <00:16:10.785>is <00:16:11.018>a <00:16:11.251>DDoS <00:16:11.485>attack

318
00:16:12.925 --> 00:16:16.225
<00:16:12.925>or <00:16:13.158>uh, <00:16:13.391>credential <00:16:13.625>stuffing, <00:16:13.858>which <00:16:14.091>ha <00:16:14.324>things,

319
00:16:16.315 --> 00:16:19.025
<00:16:16.315>which <00:16:16.548>are <00:16:16.781>things <00:16:17.015>that <00:16:17.248>are <00:16:17.481>happening, <00:16:17.715>um,

320
00:16:19.315 --> 00:16:21.905
<00:16:19.315>CloudFlare <00:16:19.490>really <00:16:19.665>helps <00:16:19.840>us <00:16:20.015>to, <00:16:20.190>to <00:16:20.365>stop <00:16:20.540>these <00:16:20.715>things

321
00:16:22.285 --> 00:16:23.345
<00:16:22.285>and <00:16:22.523>get <00:16:22.762>them <00:16:23.000>under <00:16:23.239>control.

322
00:16:24.995 --> 00:16:26.215
<00:16:24.995>So <00:16:25.214>how <00:16:25.434>do <00:16:25.653>we <00:16:25.873>do <00:16:26.093>that?

323
00:16:26.555 --> 00:16:28.495
<00:16:26.555>How <00:16:26.834>do <00:16:27.114>we <00:16:27.395>now <00:16:27.675>manage <00:16:27.954>to

324
00:16:30.225 --> 00:16:31.835
<00:16:30.225>process <00:16:30.691>all <00:16:31.158>this <00:16:31.625>traffic

325
00:16:32.215 --> 00:16:34.995
<00:16:32.215>by <00:16:32.448>a <00:16:32.681>single <00:16:32.915>application <00:16:33.148>server <00:16:33.381>for <00:16:33.615>that?

326
00:16:35.095 --> 00:16:39.635
<00:16:35.095>We <00:16:35.235>have <00:16:35.375>from <00:16:35.515>the <00:16:35.655>very <00:16:35.795>beginning <00:16:35.935>built <00:16:36.075>an <00:16:36.215>ultra <00:16:36.355>fast <00:16:36.495>caching

327
00:16:39.635 --> 00:16:40.875
<00:16:39.635>layer <00:16:40.007>within <00:16:40.379>our <00:16:40.751>system.

328
00:16:41.055 --> 00:16:44.865
<00:16:41.055>So <00:16:41.288>all <00:16:41.521>the <00:16:41.755>data <00:16:41.988>that <00:16:42.221>is <00:16:42.454>needed

329
00:16:45.725 --> 00:16:50.165
<00:16:45.725>for <00:16:45.958>all <00:16:46.191>the, <00:16:46.425>the <00:16:46.658>most <00:16:46.891>frequented <00:16:47.125>data

330
00:16:50.165 --> 00:16:52.845
<00:16:50.165>that <00:16:50.365>is <00:16:50.564>used <00:16:50.765>for <00:16:50.964>reading <00:16:51.165>request <00:16:51.365>is <00:16:51.564>stored

331
00:16:52.845 --> 00:16:53.965
<00:16:52.845>in <00:16:53.349>memory <00:16:53.853>completely.

332
00:16:54.185 --> 00:16:58.925
<00:16:54.185>So <00:16:54.359>all <00:16:54.535>the <00:16:54.709>listings <00:16:54.885>of <00:16:55.060>watches <00:16:55.234>are <00:16:55.410>readily <00:16:55.584>available.

333
00:16:59.945 --> 00:17:04.085
<00:16:59.945>Um, <00:17:00.145>and <00:17:00.345>we <00:17:00.545>do <00:17:00.745>that <00:17:00.945>in, <00:17:01.145>um, <00:17:01.345>dao,

334
00:17:04.085 --> 00:17:06.805
<00:17:04.085>which <00:17:04.318>is <00:17:04.551>a <00:17:04.785>data <00:17:05.018>access <00:17:05.251>object <00:17:05.485>structure,

335
00:17:08.735 --> 00:17:12.005
<00:17:08.734>which <00:17:08.909>has, <00:17:09.084>um, <00:17:09.260>that <00:17:09.435>sort <00:17:09.609>of <00:17:09.784>dao <00:17:09.959>like <00:17:10.135>interface

336
00:17:12.005 --> 00:17:16.165
<00:17:12.005>where <00:17:12.180>you've <00:17:12.355>got <00:17:12.530>your, <00:17:12.705>uh, <00:17:12.880>credit <00:17:13.055>operations <00:17:13.230>there, <00:17:13.405>create,

337
00:17:16.165 --> 00:17:17.725
<00:17:16.165>read, <00:17:16.514>read, <00:17:16.865>delete, <00:17:17.214>and <00:17:17.565>update.

338
00:17:19.625 --> 00:17:23.725
<00:17:19.625>And <00:17:19.825>of <00:17:20.025>course, <00:17:20.224>we <00:17:20.425>don't <00:17:20.625>want <00:17:20.825>to <00:17:21.025>rule,

339
00:17:24.035 --> 00:17:25.365
<00:17:24.035>like <00:17:24.334>we <00:17:24.633>have <00:17:24.932>this <00:17:25.232>situation

340
00:17:25.365 --> 00:17:29.845
<00:17:25.365>that <00:17:25.565>we <00:17:25.765>want <00:17:25.964>probably <00:17:26.165>just <00:17:26.365>access <00:17:26.565>specific <00:17:26.765>entities

341
00:17:32.135 --> 00:17:34.995
<00:17:32.135>of <00:17:32.335>say, <00:17:32.535>specific <00:17:32.735>listings <00:17:32.935>of <00:17:33.135>a <00:17:33.335>particular <00:17:33.535>seller,

342
00:17:36.415 --> 00:17:37.515
<00:17:36.415>uh, <00:17:36.745>and <00:17:37.075>or <00:17:37.405>everything.

343
00:17:37.515 --> 00:17:40.195
<00:17:37.515>But <00:17:37.670>we <00:17:37.826>also <00:17:37.981>don't <00:17:38.137>want <00:17:38.292>to <00:17:38.448>build <00:17:38.603>a <00:17:38.759>complete <00:17:38.915>in

344
00:17:40.495 --> 00:17:42.435
<00:17:40.495>or <00:17:40.774>user <00:17:41.054>complete <00:17:41.334>in <00:17:41.614>memory <00:17:41.895>database.

345
00:17:42.455 --> 00:17:46.035
<00:17:42.455>So <00:17:42.595>what <00:17:42.735>we <00:17:42.875>do <00:17:43.014>is <00:17:43.155>we <00:17:43.294>have <00:17:43.435>the <00:17:43.574>concept <00:17:43.715>of <00:17:43.855>slices,

346
00:17:46.325 --> 00:17:50.005
<00:17:46.325>which <00:17:46.500>is <00:17:46.675>kind <00:17:46.850>of <00:17:47.025>an, <00:17:47.200>you <00:17:47.375>could <00:17:47.550>imagine <00:17:47.725>it

347
00:17:50.005 --> 00:17:53.285
<00:17:50.005>as <00:17:50.180>an <00:17:50.355>in-memory <00:17:50.530>index <00:17:50.705>of <00:17:50.880>the, <00:17:51.055>of <00:17:51.230>a <00:17:51.405>database,

348
00:17:53.545 --> 00:17:56.245
<00:17:53.545>but <00:17:53.720>it's, <00:17:53.895>it's <00:17:54.070>just <00:17:54.245>a <00:17:54.420>simple <00:17:54.595>lookup <00:17:54.770>basically <00:17:54.945>saying

349
00:17:57.315 --> 00:17:58.575
<00:17:57.315>for <00:17:57.882>this <00:17:58.449>seller

350
00:17:59.035 --> 00:18:02.615
<00:17:59.035>or <00:17:59.268>this <00:17:59.501>seller <00:17:59.735>has <00:17:59.968>the <00:18:00.201>following <00:18:00.435>listings.

351
00:18:02.715 --> 00:18:03.975
<00:18:02.715>So <00:18:02.998>it's <00:18:03.282>a <00:18:03.565>quick <00:18:03.849>association

352
00:18:04.115 --> 00:18:08.695
<00:18:04.115>and <00:18:04.270>we, <00:18:04.426>it <00:18:04.581>it's <00:18:04.737>for <00:18:04.892>the, <00:18:05.048>on <00:18:05.203>the <00:18:05.359>implementation <00:18:05.515>side,

353
00:18:08.795 --> 00:18:11.215
<00:18:08.795>if <00:18:08.922>you <00:18:09.049>build <00:18:09.176>the <00:18:09.304>system, <00:18:09.431>you <00:18:09.558>really <00:18:09.685>have <00:18:09.813>to, <00:18:09.940>uh, <00:18:10.067>you <00:18:10.195>have

354
00:18:11.215 --> 00:18:13.215
<00:18:11.215>to <00:18:11.342>think <00:18:11.469>a <00:18:11.596>bit <00:18:11.724>more <00:18:11.851>because <00:18:11.978>you, <00:18:12.105>you <00:18:12.233>need <00:18:12.360>to <00:18:12.487>think <00:18:12.615>about,

355
00:18:13.245 --> 00:18:17.335
<00:18:13.245>okay, <00:18:13.419>what <00:18:13.594>data, <00:18:13.770>uh, <00:18:13.945>what <00:18:14.120>listings <00:18:14.294>do <00:18:14.469>I <00:18:14.645>need?

356
00:18:17.755 --> 00:18:20.575
<00:18:17.755>Uh, <00:18:17.910>and <00:18:18.066>then <00:18:18.221>you <00:18:18.377>have <00:18:18.532>to, <00:18:18.688>to <00:18:18.843>build <00:18:18.999>these <00:18:19.155>slices,

357
00:18:20.575 --> 00:18:22.935
<00:18:20.575>which <00:18:20.808>are <00:18:21.041>actually <00:18:21.275>pretty <00:18:21.508>straightforward <00:18:21.741>to <00:18:21.975>build,

358
00:18:23.355 --> 00:18:24.415
<00:18:23.355>but <00:18:23.514>still <00:18:23.673>you <00:18:23.831>have <00:18:23.991>to <00:18:24.150>do <00:18:24.309>that.

359
00:18:24.555 --> 00:18:27.175
<00:18:24.555>But <00:18:24.695>then <00:18:24.835>you <00:18:24.975>have, <00:18:25.115>uh, <00:18:25.255>the <00:18:25.395>direct <00:18:25.535>access <00:18:25.675>of <00:18:25.815>the <00:18:25.955>data.

360
00:18:28.395 --> 00:18:29.735
<00:18:28.395>So <00:18:28.696>that's, <00:18:28.998>that's <00:18:29.299>pretty <00:18:29.601>fast.

361
00:18:30.555 --> 00:18:31.615
<00:18:30.555>And <00:18:30.873>most <00:18:31.191>of <00:18:31.509>the,

362
00:18:31.805 --> 00:18:34.855
<00:18:31.805>like <00:18:31.980>the <00:18:32.155>requests <00:18:32.330>are <00:18:32.505>read <00:18:32.680>requests <00:18:32.855>that <00:18:33.030>we <00:18:33.205>get.

363
00:18:34.925 --> 00:18:39.815
<00:18:34.925>It's, <00:18:35.125>so <00:18:35.325>these, <00:18:35.524>uh, <00:18:35.725>43,000 <00:18:35.925>requests <00:18:36.125>per <00:18:36.325>minute,

364
00:18:40.075 --> 00:18:43.615
<00:18:40.075>um, <00:18:40.275>boil <00:18:40.475>down <00:18:40.675>to <00:18:40.875>720 <00:18:41.075>requests <00:18:41.275>per <00:18:41.475>second,

365
00:18:45.515 --> 00:18:48.895
<00:18:45.515>uh, <00:18:45.795>which <00:18:46.075>are <00:18:46.355>just <00:18:46.635>processed <00:18:46.915>without

366
00:18:48.895 --> 00:18:50.215
<00:18:48.895>even <00:18:49.291>touching <00:18:49.687>the <00:18:50.082>database.

367
00:18:51.955 --> 00:18:55.775
<00:18:51.955>And <00:18:52.188>then <00:18:52.421>if <00:18:52.655>you <00:18:52.888>have <00:18:53.121>an <00:18:53.355>update,

368
00:18:57.335 --> 00:18:58.955
<00:18:57.335>we <00:18:57.568>have <00:18:57.801>about <00:18:58.035>30 <00:18:58.268>updates <00:18:58.501>per <00:18:58.735>second.

369
00:18:59.605 --> 00:19:02.635
<00:18:59.605>These <00:18:59.805>are <00:19:00.005>of <00:19:00.205>course <00:19:00.405>propagated <00:19:00.605>to <00:19:00.805>the <00:19:01.005>database.

370
00:19:02.815 --> 00:19:05.075
<00:19:02.815>So, <00:19:03.095>um, <00:19:03.375>the <00:19:03.655>database <00:19:03.935>is <00:19:04.215>updated,

371
00:19:05.495 --> 00:19:07.195
<00:19:05.495>but <00:19:05.728>as <00:19:05.961>you've <00:19:06.195>seen, <00:19:06.428>we <00:19:06.661>not <00:19:06.895>just

372
00:19:07.805 --> 00:19:10.115
<00:19:07.805>don't <00:19:08.038>just <00:19:08.271>have <00:19:08.505>a <00:19:08.738>single <00:19:08.971>application <00:19:09.205>server.

373
00:19:10.695 --> 00:19:14.815
<00:19:10.695>So <00:19:10.850>when <00:19:11.006>the <00:19:11.161>update <00:19:11.317>comes, <00:19:11.472>the, <00:19:11.628>the <00:19:11.783>DAO <00:19:11.939>is <00:19:12.095>updated,

374
00:19:15.035 --> 00:19:18.175
<00:19:15.035>the <00:19:15.190>slices <00:19:15.346>are <00:19:15.501>updated <00:19:15.657>and <00:19:15.812>the <00:19:15.968>database <00:19:16.123>value <00:19:16.279>is <00:19:16.435>updated,

375
00:19:18.175 --> 00:19:22.815
<00:19:18.175>but <00:19:18.375>also <00:19:18.575>the <00:19:18.774>other <00:19:18.975>application <00:19:19.175>servers <00:19:19.375>are <00:19:19.575>notified.

376
00:19:23.235 --> 00:19:27.175
<00:19:23.235>So <00:19:23.390>they <00:19:23.546>are <00:19:23.701>informed <00:19:23.857>that <00:19:24.012>the <00:19:24.168>change <00:19:24.323>has <00:19:24.479>been <00:19:24.635>happening,

377
00:19:27.675 --> 00:19:31.095
<00:19:27.675>and <00:19:27.908>this <00:19:28.141>actually <00:19:28.375>happens <00:19:28.608>within <00:19:28.841>three <00:19:29.075>milliseconds.

378
00:19:31.095 --> 00:19:32.095
<00:19:31.095>So <00:19:31.395>that's <00:19:31.695>pretty <00:19:31.995>fast.

379
00:19:32.995 --> 00:19:36.055
<00:19:32.995>And <00:19:33.228>also <00:19:33.461>the <00:19:33.695>whole, <00:19:33.928>uh, <00:19:34.161>response <00:19:34.395>time,

380
00:19:36.055 --> 00:19:38.575
<00:19:36.055>server <00:19:36.210>side <00:19:36.366>response <00:19:36.521>time <00:19:36.677>of <00:19:36.832>the <00:19:36.988>request <00:19:37.143>is <00:19:37.299>pretty <00:19:37.455>fast.

381
00:19:38.605 --> 00:19:43.575
<00:19:38.605>With <00:19:38.955>63 <00:19:39.305>milliseconds, <00:19:39.655>of <00:19:40.005>course,

382
00:19:44.655 --> 00:19:48.155
<00:19:44.655>you <00:19:44.795>can <00:19:44.935>still <00:19:45.075>have <00:19:45.215>the <00:19:45.355>problem <00:19:45.495>that <00:19:45.635>you <00:19:45.774>send <00:19:45.915>an <00:19:46.055>update

383
00:19:48.615 --> 00:19:52.115
<00:19:48.615>and <00:19:48.755>a <00:19:48.895>following <00:19:49.035>request <00:19:49.175>would <00:19:49.315>end <00:19:49.455>up <00:19:49.595>at <00:19:49.735>a <00:19:49.875>different <00:19:50.015>server

384
00:19:52.505 --> 00:19:55.715
<00:19:52.505>getting <00:19:52.705>a <00:19:52.905>different <00:19:53.105>response <00:19:53.305>or <00:19:53.505>see <00:19:53.705>inconsistent <00:19:53.905>state.

385
00:19:56.055 --> 00:19:57.195
<00:19:56.055>That's <00:19:56.397>to <00:19:56.739>be <00:19:57.081>avoided.

386
00:19:57.215 --> 00:19:59.355
<00:19:57.215>So <00:19:57.495>our <00:19:57.774>sessions <00:19:58.054>are <00:19:58.334>always <00:19:58.615>sticky

387
00:19:59.375 --> 00:20:01.875
<00:19:59.375>and <00:19:59.655>pinned <00:19:59.935>to <00:20:00.215>one <00:20:00.495>application <00:20:00.775>server

388
00:20:03.615 --> 00:20:05.595
<00:20:03.615>to <00:20:03.965>avoid <00:20:04.315>such, <00:20:04.665>such <00:20:05.015>problems.

389
00:20:07.335 --> 00:20:11.715
<00:20:07.335>And <00:20:07.475>last <00:20:07.615>but <00:20:07.755>not <00:20:07.895>least, <00:20:08.035>we <00:20:08.175>have <00:20:08.315>other <00:20:08.455>applications <00:20:08.595>that <00:20:08.735>work

390
00:20:11.715 --> 00:20:15.155
<00:20:11.715>with <00:20:12.064>our <00:20:12.415>data, <00:20:12.764>so, <00:20:13.115>um,

391
00:20:15.425 --> 00:20:16.715
<00:20:15.425>they <00:20:15.618>need <00:20:15.812>to <00:20:16.005>be <00:20:16.198>informed <00:20:16.392>as <00:20:16.586>well.

392
00:20:17.835 --> 00:20:21.815
<00:20:17.835>And <00:20:18.010>also <00:20:18.185>they <00:20:18.360>don't <00:20:18.535>have <00:20:18.710>such <00:20:18.885>high <00:20:19.060>performance <00:20:19.235>requirements.

393
00:20:21.995 --> 00:20:25.855
<00:20:21.995>So <00:20:22.150>they're <00:20:22.306>not <00:20:22.461>live <00:20:22.617>systems <00:20:22.772>for <00:20:22.928>end <00:20:23.083>users <00:20:23.239>with <00:20:23.395>millions

394
00:20:25.855 --> 00:20:29.615
<00:20:25.855>of <00:20:26.030>people <00:20:26.205>work <00:20:26.380>like, <00:20:26.555>uh, <00:20:26.730>accessing <00:20:26.905>it, <00:20:27.080>it's <00:20:27.255>just

395
00:20:30.755 --> 00:20:31.995
<00:20:30.755>in-house <00:20:31.870>applications.

396
00:20:32.735 --> 00:20:36.785
<00:20:32.735>So <00:20:32.890>they <00:20:33.046>need <00:20:33.201>to <00:20:33.357>be <00:20:33.512>fast <00:20:33.668>as <00:20:33.823>well, <00:20:33.979>of <00:20:34.135>course,

397
00:20:36.805 --> 00:20:40.145
<00:20:36.805>but <00:20:36.932>they <00:20:37.059>don't <00:20:37.186>have <00:20:37.314>to <00:20:37.441>be <00:20:37.568>as <00:20:37.695>fast <00:20:37.823>as <00:20:37.950>our <00:20:38.077>marketplace <00:20:38.205>system.

398
00:20:41.085 --> 00:20:43.305
<00:20:41.085>So, <00:20:41.285>and <00:20:41.485>they <00:20:41.685>don't <00:20:41.885>have <00:20:42.085>such <00:20:42.285>a <00:20:42.485>high

399
00:20:43.305 --> 00:20:44.585
<00:20:43.305>load <00:20:43.535>and <00:20:43.765>such <00:20:43.996>a <00:20:44.226>high <00:20:44.457>demand.

400
00:20:44.765 --> 00:20:49.285
<00:20:44.765>So <00:20:44.920>we <00:20:45.076>have <00:20:45.231>basically <00:20:45.387>a <00:20:45.542>version <00:20:45.698>of <00:20:45.853>our <00:20:46.009>DAOs <00:20:46.165>that

401
00:20:50.685 --> 00:20:52.085
<00:20:50.685>minimizes <00:20:51.105>the <00:20:51.525>memory <00:20:51.945>footprint

402
00:20:52.585 --> 00:20:56.485
<00:20:52.585>and <00:20:52.725>we <00:20:52.865>call <00:20:53.005>it <00:20:53.145>remote <00:20:53.285>dao, <00:20:53.425>which <00:20:53.565>is <00:20:53.705>basically <00:20:53.845>just, <00:20:53.985>um,

403
00:20:56.965 --> 00:21:00.965
<00:20:56.965>a <00:20:57.198>version <00:20:57.431>with, <00:20:57.665>uh, <00:20:57.898>which <00:20:58.131>then, <00:20:58.365>uh,

404
00:21:01.275 --> 00:21:02.805
<00:21:01.275>also <00:21:01.619>gets <00:21:01.963>the <00:21:02.307>data <00:21:02.652>from

405
00:21:02.905 --> 00:21:06.245
<00:21:02.905>and <00:21:03.185>notifies <00:21:03.465>the, <00:21:03.745>the <00:21:04.024>actual <00:21:04.305>DAOs,

406
00:21:07.785 --> 00:21:08.925
<00:21:07.785>uh, <00:21:08.127>in <00:21:08.469>our <00:21:08.811>system.

407
00:21:09.625 --> 00:21:13.085
<00:21:09.625>And, <00:21:09.905>um, <00:21:10.185>also <00:21:10.465>retrie <00:21:10.745>notifications <00:21:11.025>if

408
00:21:13.085 --> 00:21:14.125
<00:21:13.085>things <00:21:13.397>are <00:21:13.709>updated <00:21:14.021>there.

409
00:21:14.385 --> 00:21:18.245
<00:21:14.385>So <00:21:14.560>that's <00:21:14.735>the <00:21:14.910>basic <00:21:15.085>setup <00:21:15.260>of <00:21:15.435>our <00:21:15.610>caching <00:21:15.785>layer

410
00:21:18.625 --> 00:21:21.735
<00:21:18.625>and <00:21:18.825>how <00:21:19.025>the <00:21:19.225>notifications <00:21:19.425>are <00:21:19.625>sent <00:21:19.825>around, <00:21:20.025>uh,

411
00:21:21.735 --> 00:21:22.735
<00:21:21.735>and <00:21:22.034>things <00:21:22.334>are <00:21:22.635>updated.

412
00:21:24.295 --> 00:21:28.665
<00:21:24.295>This <00:21:24.435>really <00:21:24.575>helps <00:21:24.715>us <00:21:24.855>to, <00:21:24.995>yeah, <00:21:25.135>process <00:21:25.275>all <00:21:25.415>the <00:21:25.555>requests, <00:21:25.695>uh,

413
00:21:28.665 --> 00:21:31.625
<00:21:28.665>that <00:21:28.820>are <00:21:28.976>coming <00:21:29.131>from, <00:21:29.287>uh, <00:21:29.442>yeah, <00:21:29.598>that, <00:21:29.753>that <00:21:29.909>we <00:21:30.065>need

414
00:21:31.625 --> 00:21:33.605
<00:21:31.625>to, <00:21:32.325>to <00:21:33.025>handle.

415
00:21:37.265 --> 00:21:42.005
<00:21:37.265>But <00:21:37.405>as <00:21:37.545>I <00:21:37.685>already <00:21:37.825>said, <00:21:37.965>it's <00:21:38.105>not <00:21:38.245>the <00:21:38.385>only, <00:21:38.525>uh, <00:21:38.665>application

416
00:21:42.005 --> 00:21:44.645
<00:21:42.005>that <00:21:42.285>we <00:21:42.565>run <00:21:42.845>because <00:21:43.125>it's <00:21:43.405>marketplace

417
00:21:45.225 --> 00:21:47.805
<00:21:45.225>and <00:21:45.425>it, <00:21:45.625>there <00:21:45.824>needs <00:21:46.024>to <00:21:46.225>be, <00:21:46.425>there <00:21:46.625>needs

418
00:21:47.805 --> 00:21:49.735
<00:21:47.805>to <00:21:48.155>be, <00:21:48.505>yeah, <00:21:48.855>work <00:21:49.205>done.

419
00:21:49.765 --> 00:21:52.535
<00:21:49.765>Like <00:21:49.940>there's <00:21:50.115>a <00:21:50.290>bit <00:21:50.465>of <00:21:50.640>maintenance, <00:21:50.815>uh, <00:21:50.990>going <00:21:51.165>on.

420
00:21:52.535 --> 00:21:54.615
<00:21:52.535>So <00:21:52.710>you <00:21:52.885>have <00:21:53.060>to <00:21:53.235>look <00:21:53.410>at <00:21:53.585>different <00:21:53.760>transac <00:21:53.935>transaction,

421
00:21:54.615 --> 00:21:57.735
<00:21:54.615>you <00:21:54.770>have <00:21:54.926>to <00:21:55.081>answer <00:21:55.237>questions <00:21:55.392>of <00:21:55.548>uses, <00:21:55.703>uh, <00:21:55.859>you <00:21:56.015>have

422
00:21:57.735 --> 00:22:00.135
<00:21:57.735>to <00:21:57.909>do <00:21:58.084>an <00:21:58.260>onboarding <00:21:58.435>for <00:21:58.610>DL <00:21:58.784>and <00:21:58.959>so <00:21:59.135>on.

423
00:22:00.675 --> 00:22:04.375
<00:22:00.675>So <00:22:00.955>this <00:22:01.235>is <00:22:01.514>all <00:22:01.794>happening, <00:22:02.075>um,

424
00:22:04.995 --> 00:22:07.575
<00:22:04.995>or <00:22:05.195>done <00:22:05.395>by <00:22:05.594>our <00:22:05.794>account <00:22:05.995>management, <00:22:06.195>customer <00:22:06.395>relations

425
00:22:07.715 --> 00:22:11.175
<00:22:07.715>and <00:22:07.889>many, <00:22:08.064>many <00:22:08.240>other <00:22:08.415>colleagues <00:22:08.590>working <00:22:08.764>for <00:22:08.939>K <00:22:09.115>24.

426
00:22:11.555 --> 00:22:14.855
<00:22:11.555>And <00:22:11.710>they <00:22:11.866>have <00:22:12.021>our <00:22:12.177>internal <00:22:12.332>application <00:22:12.488>that <00:22:12.643>we <00:22:12.799>call <00:22:12.955>hub,

427
00:22:15.775 --> 00:22:18.045
<00:22:15.775>which <00:22:16.008>is <00:22:16.241>also <00:22:16.475>running <00:22:16.708>on <00:22:16.941>two <00:22:17.175>machines

428
00:22:18.305 --> 00:22:20.525
<00:22:18.305>and <00:22:18.505>uh, <00:22:18.705>with <00:22:18.905>a <00:22:19.105>load <00:22:19.305>balancer <00:22:19.505>before <00:22:19.705>it

429
00:22:20.625 --> 00:22:25.205
<00:22:20.625>and <00:22:20.765>works, <00:22:20.905>uh, <00:22:21.045>uses <00:22:21.185>the <00:22:21.325>concept <00:22:21.465>of <00:22:21.605>the <00:22:21.745>remote <00:22:21.885>DAOs <00:22:22.025>to

430
00:22:26.125 --> 00:22:27.325
<00:22:26.125>communicate <00:22:26.485>with <00:22:26.845>our <00:22:27.205>marketplace.

431
00:22:27.905 --> 00:22:30.125
<00:22:27.905>And <00:22:28.032>last <00:22:28.159>but <00:22:28.286>not <00:22:28.414>least, <00:22:28.541>we <00:22:28.668>also <00:22:28.795>have <00:22:28.923>a <00:22:29.050>set <00:22:29.177>of <00:22:29.305>batch

432
00:22:30.675 --> 00:22:32.125
<00:22:30.675>processes <00:22:30.936>that <00:22:31.197>need <00:22:31.458>to <00:22:31.719>be <00:22:31.980>running

433
00:22:33.505 --> 00:22:38.045
<00:22:33.505>and <00:22:33.738>they <00:22:33.971>are <00:22:34.205>basically <00:22:34.438>separated <00:22:34.671>also <00:22:34.905>individual

434
00:22:38.125 --> 00:22:39.905
<00:22:38.125>machines, <00:22:39.525>um,

435
00:22:40.605 --> 00:22:44.265
<00:22:40.605>and <00:22:40.780>can <00:22:40.955>either, <00:22:41.130>yeah, <00:22:41.305>can <00:22:41.480>access <00:22:41.655>the, <00:22:41.830>the <00:22:42.005>data

436
00:22:44.365 --> 00:22:45.985
<00:22:44.365>as <00:22:44.715>well <00:22:45.065>via <00:22:45.415>remote <00:22:45.765>DAOs

437
00:22:45.985 --> 00:22:48.465
<00:22:45.985>or <00:22:46.218>local <00:22:46.451>DAOs, <00:22:46.685>whatever, <00:22:46.918>uh, <00:22:47.151>is <00:22:47.385>necessary.

438
00:22:49.965 --> 00:22:52.625
<00:22:49.965>And <00:22:50.120>as <00:22:50.276>I <00:22:50.431>said, <00:22:50.587>we <00:22:50.742>are <00:22:50.898>not <00:22:51.053>black <00:22:51.209>and <00:22:51.365>white.

439
00:22:53.095 --> 00:22:54.505
<00:22:53.095>It's <00:22:53.412>actually <00:22:53.729>a <00:22:54.046>hybrid <00:22:54.364>approach.

440
00:22:54.505 --> 00:22:57.545
<00:22:54.505>Of <00:22:54.660>course, <00:22:54.816>we <00:22:54.971>use <00:22:55.127>cloud <00:22:55.282>features <00:22:55.438>wherever <00:22:55.593>it <00:22:55.749>helps <00:22:55.905>us.

441
00:22:58.285 --> 00:23:00.385
<00:22:58.285>And <00:22:58.635>there's <00:22:58.985>actually <00:22:59.335>a <00:22:59.685>very,

442
00:23:00.495 --> 00:23:03.225
<00:23:00.495>very <00:23:00.774>nice <00:23:01.054>quote <00:23:01.334>from <00:23:01.614>Iahu <00:23:01.895>Goldratt

443
00:23:03.845 --> 00:23:07.065
<00:23:03.845>and <00:23:04.020>he <00:23:04.195>said, <00:23:04.370>any <00:23:04.545>technology <00:23:04.720>is <00:23:04.895>only <00:23:05.070>as <00:23:05.245>good

444
00:23:07.065 --> 00:23:08.385
<00:23:07.065>as <00:23:07.263>the <00:23:07.461>problem <00:23:07.659>it <00:23:07.857>solves <00:23:08.055>for <00:23:08.253>you.

445
00:23:08.445 --> 00:23:11.665
<00:23:08.445>So <00:23:08.645>if <00:23:08.845>you <00:23:09.044>run <00:23:09.245>into <00:23:09.445>a <00:23:09.645>problem <00:23:09.845>where

446
00:23:13.905 --> 00:23:16.325
<00:23:13.905>what's <00:23:14.080>offered <00:23:14.254>by <00:23:14.430>the <00:23:14.605>cloud <00:23:14.780>is <00:23:14.955>actually <00:23:15.129>the <00:23:15.305>best

447
00:23:16.325 --> 00:23:17.645
<00:23:16.325>thing, <00:23:16.622>why <00:23:16.919>not <00:23:17.216>use <00:23:17.513>it?

448
00:23:18.185 --> 00:23:22.525
<00:23:18.185>So <00:23:18.340>we <00:23:18.496>have <00:23:18.651>mainly <00:23:18.807>four <00:23:18.962>things <00:23:19.118>that <00:23:19.273>we <00:23:19.429>are <00:23:19.585>using.

449
00:23:22.625 --> 00:23:25.405
<00:23:22.625>We <00:23:22.825>are <00:23:23.025>using <00:23:23.225>S3, <00:23:23.425>that's <00:23:23.625>where <00:23:23.825>we <00:23:24.025>started

450
00:23:25.405 --> 00:23:29.085
<00:23:25.405>because <00:23:25.605>we <00:23:25.805>have <00:23:26.004>about <00:23:26.205>24 <00:23:26.405>terabytes <00:23:26.605>of <00:23:26.805>images.

451
00:23:29.145 --> 00:23:32.005
<00:23:29.145>So <00:23:29.300>you <00:23:29.456>could <00:23:29.611>imagine <00:23:29.767>every <00:23:29.922>listing <00:23:30.078>has <00:23:30.233>about <00:23:30.389>10 <00:23:30.545>images.

452
00:23:32.155 --> 00:23:36.205
<00:23:32.155>They <00:23:32.330>are <00:23:32.504>uploaded <00:23:32.680>and <00:23:32.855>we <00:23:33.030>have <00:23:33.205>about <00:23:33.379>500,000 <00:23:33.555>listings.

453
00:23:36.465 --> 00:23:39.125
<00:23:36.465>We <00:23:36.698>also <00:23:36.931>need <00:23:37.165>to <00:23:37.398>keep <00:23:37.631>images <00:23:37.865>of

454
00:23:39.755 --> 00:23:43.165
<00:23:39.755>already <00:23:39.988>sword <00:23:40.221>watches <00:23:40.455>just <00:23:40.688>for <00:23:40.921>case <00:23:41.155>of,

455
00:23:43.345 --> 00:23:44.725
<00:23:43.345>um, <00:23:43.593>you <00:23:43.841>know, <00:23:44.090>for <00:23:44.338>legal <00:23:44.587>reasons.

456
00:23:45.985 --> 00:23:48.165
<00:23:45.985>So <00:23:46.185>we <00:23:46.385>have <00:23:46.584>about <00:23:46.784>24 <00:23:46.985>terabytes <00:23:47.185>of <00:23:47.385>images,

457
00:23:48.495 --> 00:23:50.405
<00:23:48.495>which <00:23:48.774>is <00:23:49.054>also <00:23:49.334>keeps <00:23:49.614>on <00:23:49.895>growing.

458
00:23:51.105 --> 00:23:54.645
<00:23:51.105>And <00:23:51.232>to <00:23:51.359>manage <00:23:51.486>that <00:23:51.614>on <00:23:51.741>a <00:23:51.868>local <00:23:51.995>system <00:23:52.123>with <00:23:52.250>your <00:23:52.377>own <00:23:52.505>storage

459
00:23:55.505 --> 00:23:56.525
<00:23:55.505>is <00:23:55.811>quite <00:23:56.117>a <00:23:56.423>pay.

460
00:23:56.825 --> 00:23:59.565
<00:23:56.825>So <00:23:56.965>we <00:23:57.105>did <00:23:57.245>that <00:23:57.385>until <00:23:57.525>about <00:23:57.665>four <00:23:57.805>or <00:23:57.945>five <00:23:58.085>years <00:23:58.225>ago,

461
00:23:59.865 --> 00:24:01.725
<00:23:59.865>and <00:24:00.040>then <00:24:00.215>we <00:24:00.390>decided, <00:24:00.565>okay, <00:24:00.740>this <00:24:00.915>is <00:24:01.090>not <00:24:01.265>it.

462
00:24:02.585 --> 00:24:05.245
<00:24:02.585>Uh, <00:24:02.725>we <00:24:02.865>are <00:24:03.005>going <00:24:03.145>to <00:24:03.285>move <00:24:03.425>that <00:24:03.565>to <00:24:03.705>a <00:24:03.845>three <00:24:03.985>S3.

463
00:24:05.705 --> 00:24:07.445
<00:24:05.705>And <00:24:05.860>we <00:24:06.016>did, <00:24:06.171>and <00:24:06.327>we <00:24:06.482>are <00:24:06.638>pretty <00:24:06.793>happy <00:24:06.949>with <00:24:07.105>that.

464
00:24:07.595 --> 00:24:08.765
<00:24:07.595>It's <00:24:07.858>a <00:24:08.121>very <00:24:08.384>good <00:24:08.648>thing.

465
00:24:08.765 --> 00:24:11.365
<00:24:08.765>Helped <00:24:08.905>us <00:24:09.045>a <00:24:09.185>lot, <00:24:09.325>make <00:24:09.465>things <00:24:09.605>a <00:24:09.745>lot <00:24:09.885>simpler <00:24:10.025>for <00:24:10.165>us.

466
00:24:12.195 --> 00:24:16.925
<00:24:12.195>Next <00:24:12.395>thing <00:24:12.595>is <00:24:12.794>we <00:24:12.995>use <00:24:13.195>Lambdas <00:24:13.395>for <00:24:13.595>post-processing

467
00:24:16.985 --> 00:24:18.045
<00:24:16.985>and <00:24:17.303>scaling <00:24:17.621>of <00:24:17.939>images.

468
00:24:18.145 --> 00:24:22.745
<00:24:18.145>You <00:24:18.285>could <00:24:18.425>imagine <00:24:18.565>that <00:24:18.705>if <00:24:18.845>you <00:24:18.985>are <00:24:19.125>browsing <00:24:19.264>the <00:24:19.405>web <00:24:19.545>or

469
00:24:22.845 --> 00:24:26.385
<00:24:22.845>and <00:24:22.952>are <00:24:23.060>on <00:24:23.168>our <00:24:23.275>site, <00:24:23.383>you <00:24:23.491>see <00:24:23.598>the <00:24:23.706>image <00:24:23.814>of <00:24:23.921>a <00:24:24.029>watch <00:24:24.137>in <00:24:24.245>very,

470
00:24:26.935 --> 00:24:28.105
<00:24:26.935>very <00:24:27.461>different <00:24:27.988>sizes.

471
00:24:28.325 --> 00:24:30.625
<00:24:28.325>So, <00:24:28.605>uh, <00:24:28.885>you've <00:24:29.165>got <00:24:29.445>an <00:24:29.725>overview,

472
00:24:30.625 --> 00:24:32.665
<00:24:30.625>you've <00:24:30.858>got <00:24:31.091>a <00:24:31.325>very <00:24:31.558>tiny <00:24:31.791>t <00:24:32.025>thumbnail,

473
00:24:32.665 --> 00:24:34.385
<00:24:32.665>then <00:24:32.820>you're <00:24:32.976>on <00:24:33.131>the <00:24:33.287>detail <00:24:33.442>page, <00:24:33.598>you <00:24:33.753>have <00:24:33.909>a <00:24:34.065>bit

474
00:24:34.385 --> 00:24:36.625
<00:24:34.385>of <00:24:34.560>bigger <00:24:34.735>picture, <00:24:34.910>and <00:24:35.085>then <00:24:35.260>you <00:24:35.435>can <00:24:35.610>zoom <00:24:35.785>in

475
00:24:36.645 --> 00:24:37.945
<00:24:36.645>and <00:24:36.840>you <00:24:37.034>can <00:24:37.230>see <00:24:37.425>all <00:24:37.620>the <00:24:37.815>details.

476
00:24:38.565 --> 00:24:41.185
<00:24:38.565>And <00:24:38.765>of <00:24:38.965>course, <00:24:39.165>in <00:24:39.365>terms <00:24:39.565>of <00:24:39.765>response <00:24:39.965>times

477
00:24:41.525 --> 00:24:44.505
<00:24:41.525>and <00:24:41.700>also <00:24:41.875>traffic <00:24:42.050>you <00:24:42.225>generate, <00:24:42.400>it <00:24:42.575>makes <00:24:42.750>total <00:24:42.925>sense

478
00:24:44.645 --> 00:24:48.465
<00:24:44.645>to <00:24:44.800>deliver <00:24:44.956>the <00:24:45.111>image <00:24:45.267>always <00:24:45.422>in <00:24:45.578>the <00:24:45.733>best <00:24:45.889>possible <00:24:46.045>size

479
00:24:49.475 --> 00:24:54.085
<00:24:49.475>for <00:24:49.824>the <00:24:50.175>user <00:24:50.524>and <00:24:50.875>for

480
00:24:54.085 --> 00:24:57.005
<00:24:54.085>that <00:24:54.240>purpose, <00:24:54.396>for <00:24:54.551>that <00:24:54.707>scaling <00:24:54.862>that <00:24:55.018>needs <00:24:55.173>to <00:24:55.329>be <00:24:55.485>done.

481
00:24:57.025 --> 00:24:58.925
<00:24:57.025>We <00:24:57.491>use <00:24:57.958>AWS <00:24:58.425>Lambdas,

482
00:25:01.105 --> 00:25:04.725
<00:25:01.105>we <00:25:01.280>also <00:25:01.455>have <00:25:01.630>a <00:25:01.805>quite <00:25:01.980>strong <00:25:02.155>machine <00:25:02.330>learning <00:25:02.505>team,

483
00:25:05.545 --> 00:25:10.085
<00:25:05.545>and <00:25:05.700>they <00:25:05.856>are <00:25:06.011>using <00:25:06.167>LLMs <00:25:06.322>and <00:25:06.478>AWS <00:25:06.633>machine <00:25:06.789>learning <00:25:06.945>services.

484
00:25:10.465 --> 00:25:12.365
<00:25:10.465>So <00:25:10.605>we <00:25:10.745>have <00:25:10.885>features <00:25:11.024>like <00:25:11.165>a <00:25:11.304>watch <00:25:11.445>scanner <00:25:11.584>you <00:25:11.725>can <00:25:11.865>take

485
00:25:12.365 --> 00:25:14.085
<00:25:12.365>with <00:25:12.520>your <00:25:12.676>phone, <00:25:12.831>you <00:25:12.987>can <00:25:13.142>take <00:25:13.298>a <00:25:13.453>picture, <00:25:13.609>a <00:25:13.765>watch,

486
00:25:14.465 --> 00:25:17.325
<00:25:14.465>and <00:25:14.698>it's <00:25:14.931>somewhat <00:25:15.165>guesses, <00:25:15.398>the <00:25:15.631>manufacturer <00:25:15.865>model

487
00:25:17.345 --> 00:25:19.285
<00:25:17.345>and <00:25:17.578>the <00:25:17.811>actual <00:25:18.045>product <00:25:18.278>that <00:25:18.511>you <00:25:18.745>have.

488
00:25:20.015 --> 00:25:23.125
<00:25:20.015>We've <00:25:20.170>got <00:25:20.326>a <00:25:20.481>feed <00:25:20.637>where <00:25:20.792>based <00:25:20.948>on <00:25:21.103>your <00:25:21.259>previous <00:25:21.415>behavior

489
00:25:23.185 --> 00:25:25.405
<00:25:23.185>and <00:25:23.418>interests, <00:25:23.651>you <00:25:23.885>get <00:25:24.118>recommendations <00:25:24.351>for <00:25:24.585>watches.

490
00:25:26.185 --> 00:25:30.735
<00:25:26.185>And <00:25:26.418>we <00:25:26.651>also <00:25:26.885>help <00:25:27.118>our <00:25:27.351>sellers <00:25:27.585>to

491
00:25:31.285 --> 00:25:33.775
<00:25:31.285>improve <00:25:31.485>the <00:25:31.685>quality <00:25:31.885>of <00:25:32.085>the <00:25:32.285>images <00:25:32.485>based <00:25:32.685>on

492
00:25:33.885 --> 00:25:35.375
<00:25:33.885>what <00:25:34.153>we'd <00:25:34.421>recognize <00:25:34.689>on <00:25:34.957>the <00:25:35.226>images.

493
00:25:38.685 --> 00:25:40.745
<00:25:38.685>LMS, <00:25:38.860>of <00:25:39.034>course, <00:25:39.210>are <00:25:39.385>also <00:25:39.560>a <00:25:39.735>topic, <00:25:39.909>topic <00:25:40.085>here,

494
00:25:41.045 --> 00:25:43.945
<00:25:41.045>and <00:25:41.200>uh, <00:25:41.356>this <00:25:41.511>is <00:25:41.667>also <00:25:41.822>something <00:25:41.978>we <00:25:42.133>don't <00:25:42.289>host <00:25:42.445>ourselves.

495
00:25:44.565 --> 00:25:46.865
<00:25:44.565>Um, <00:25:44.798>we <00:25:45.031>use <00:25:45.265>it <00:25:45.498>for <00:25:45.731>generating <00:25:45.965>text

496
00:25:47.005 --> 00:25:48.545
<00:25:47.005>for <00:25:47.467>search <00:25:47.929>engine <00:25:48.391>optimization.

497
00:25:48.805 --> 00:25:51.545
<00:25:48.805>We <00:25:49.005>have <00:25:49.205>about <00:25:49.405>four <00:25:49.605>more <00:25:49.805>than <00:25:50.005>50,000 <00:25:50.205>products.

498
00:25:51.605 --> 00:25:53.825
<00:25:51.605>So <00:25:51.838>Core <00:25:52.071>24 <00:25:52.305>has <00:25:52.538>the, <00:25:52.771>the <00:25:53.005>best

499
00:25:53.845 --> 00:25:58.305
<00:25:53.845>and <00:25:54.045>most <00:25:54.245>complete <00:25:54.445>catalog <00:25:54.645>of <00:25:54.845>watches <00:25:55.045>that <00:25:55.245>exists.

500
00:25:59.285 --> 00:26:00.545
<00:25:59.285>And <00:25:59.568>we <00:25:59.852>have <00:26:00.135>the <00:26:00.419>products

501
00:26:01.605 --> 00:26:04.185
<00:26:01.605>and <00:26:01.780>the, <00:26:01.955>the <00:26:02.130>products <00:26:02.305>need <00:26:02.480>of <00:26:02.655>course, <00:26:02.830>some <00:26:03.005>kind

502
00:26:04.185 --> 00:26:05.345
<00:26:04.185>of <00:26:05.229>description.

503
00:26:05.405 --> 00:26:07.585
<00:26:05.405>And <00:26:05.638>this <00:26:05.871>cannot <00:26:06.105>be <00:26:06.338>done <00:26:06.571>by <00:26:06.805>humans.

504
00:26:07.645 --> 00:26:10.265
<00:26:07.645>And <00:26:07.785>we <00:26:07.925>have, <00:26:08.065>for <00:26:08.205>each <00:26:08.345>product, <00:26:08.485>we <00:26:08.625>have <00:26:08.764>very <00:26:08.905>interesting <00:26:09.045>data

505
00:26:10.365 --> 00:26:11.385
<00:26:10.365>and <00:26:10.824>interesting <00:26:11.283>information,

506
00:26:11.485 --> 00:26:15.305
<00:26:11.485>and <00:26:11.659>we <00:26:11.834>use <00:26:12.010>that <00:26:12.185>to <00:26:12.360>generate <00:26:12.534>texts <00:26:12.709>and <00:26:12.885>us,

507
00:26:15.385 --> 00:26:17.705
<00:26:15.385>but <00:26:15.512>not <00:26:15.639>least <00:26:15.766>of <00:26:15.894>course, <00:26:16.021>we <00:26:16.148>can <00:26:16.275>help <00:26:16.403>our <00:26:16.530>colleagues <00:26:16.657>in <00:26:16.785>cr

508
00:26:17.845 --> 00:26:20.425
<00:26:17.845>to <00:26:18.125>process <00:26:18.405>requests <00:26:18.685>by <00:26:18.965>aggregating <00:26:19.245>information

509
00:26:20.485 --> 00:26:22.545
<00:26:20.485>and <00:26:20.718>providing <00:26:20.951>the <00:26:21.185>right <00:26:21.418>information <00:26:21.651>to <00:26:21.885>them.

510
00:26:23.925 --> 00:26:28.195
<00:26:23.925>So <00:26:24.391>this <00:26:24.858>is <00:26:25.325>sort

511
00:26:28.195 --> 00:26:29.315
<00:26:28.195>of <00:26:28.363>the <00:26:28.531>first <00:26:28.699>half <00:26:28.867>of <00:26:29.035>the <00:26:29.203>talk.

512
00:26:29.455 --> 00:26:32.905
<00:26:29.455>So <00:26:29.688>let's <00:26:29.921>look <00:26:30.155>what's <00:26:30.388>the, <00:26:30.621>what <00:26:30.855>price,

513
00:26:33.965 --> 00:26:36.305
<00:26:33.965>what's <00:26:34.198>the, <00:26:34.431>the, <00:26:34.665>how's <00:26:34.898>the <00:26:35.131>bare <00:26:35.365>metal

514
00:26:36.305 --> 00:26:37.545
<00:26:36.305>with <00:26:36.677>cloud <00:26:37.049>thing <00:26:37.421>going?

515
00:26:37.605 --> 00:26:40.625
<00:26:37.605>You <00:26:37.780>know, <00:26:37.955>what's <00:26:38.130>better? <00:26:38.305>So <00:26:38.480>the <00:26:38.655>advantages <00:26:38.830>of <00:26:39.005>working

516
00:26:40.625 --> 00:26:43.765
<00:26:40.625>with <00:26:40.825>such <00:26:41.025>a <00:26:41.225>system <00:26:41.425>is <00:26:41.625>really <00:26:41.825>its <00:26:42.025>simplicity

517
00:26:43.945 --> 00:26:47.565
<00:26:43.945>and <00:26:44.085>cost, <00:26:44.225>especially <00:26:44.365>if <00:26:44.504>we <00:26:44.645>look <00:26:44.784>at <00:26:44.925>the <00:26:45.064>ease <00:26:45.205>of <00:26:45.345>operations.

518
00:26:47.625 --> 00:26:50.885
<00:26:47.625>So <00:26:47.800>we <00:26:47.975>have <00:26:48.150>this <00:26:48.325>three <00:26:48.500>servers, <00:26:48.675>we <00:26:48.850>have <00:26:49.025>like,

519
00:26:51.465 --> 00:26:52.965
<00:26:51.465>or <00:26:51.802>an <00:26:52.139>OnCore <00:26:52.477>duty <00:26:52.814>team.

520
00:26:52.965 --> 00:26:55.685
<00:26:52.965>Of <00:26:53.105>course <00:26:53.245>you <00:26:53.385>have <00:26:53.524>to <00:26:53.665>have <00:26:53.804>that <00:26:53.945>if <00:26:54.084>you're, <00:26:54.225>uh, <00:26:54.365>want

521
00:26:55.685 --> 00:26:56.685
<00:26:55.685>to <00:26:55.909>be <00:26:56.135>up <00:26:56.360>24 <00:26:56.585>7.

522
00:26:57.625 --> 00:26:59.285
<00:26:57.625>But <00:26:57.975>the <00:26:58.325>number <00:26:58.675>of <00:26:59.025>incidents

523
00:26:59.285 --> 00:27:02.885
<00:26:59.285>and <00:26:59.460>the <00:26:59.635>problems <00:26:59.810>we <00:26:59.985>run <00:27:00.160>into <00:27:00.335>is <00:27:00.510>relatively <00:27:00.685>low,

524
00:27:03.665 --> 00:27:06.125
<00:27:03.665>and <00:27:03.840>they <00:27:04.014>are <00:27:04.190>also <00:27:04.365>like, <00:27:04.540>if <00:27:04.715>there's <00:27:04.889>a <00:27:05.065>problem,

525
00:27:06.505 --> 00:27:08.605
<00:27:06.505>we <00:27:06.738>usually <00:27:06.971>very <00:27:07.205>quick <00:27:07.438>in <00:27:07.671>resolving <00:27:07.905>them.

526
00:27:09.545 --> 00:27:12.405
<00:27:09.545>Uh, <00:27:09.745>the <00:27:09.945>whole <00:27:10.145>thing <00:27:10.345>is <00:27:10.545>from <00:27:10.745>its <00:27:10.945>architecture.

527
00:27:12.445 --> 00:27:16.045
<00:27:12.445>I <00:27:12.572>could <00:27:12.699>now <00:27:12.826>present <00:27:12.954>it <00:27:13.081>to <00:27:13.208>you <00:27:13.335>in <00:27:13.463>about <00:27:13.590>10 <00:27:13.717>minutes, <00:27:13.845>uh,

528
00:27:16.145 --> 00:27:18.325
<00:27:16.145>is <00:27:16.378>fairly <00:27:16.611>simple <00:27:16.845>and <00:27:17.078>not <00:27:17.311>really <00:27:17.545>surprising.

529
00:27:18.385 --> 00:27:20.165
<00:27:18.385>So <00:27:18.585>I <00:27:18.785>doubt <00:27:18.985>that <00:27:19.185>any <00:27:19.385>of <00:27:19.585>you <00:27:19.785>said,

530
00:27:20.165 --> 00:27:21.325
<00:27:20.165>oh, <00:27:20.373>I've <00:27:20.582>never <00:27:20.791>seen <00:27:21.000>that <00:27:21.209>before.

531
00:27:21.985 --> 00:27:24.325
<00:27:21.985>Um, <00:27:22.218>so <00:27:22.451>it's, <00:27:22.685>it's, <00:27:22.918>it's <00:27:23.151>very <00:27:23.385>simple.

532
00:27:24.395 --> 00:27:25.525
<00:27:24.395>It's <00:27:24.734>easy <00:27:25.073>to <00:27:25.412>understand.

533
00:27:26.145 --> 00:27:29.485
<00:27:26.145>Um, <00:27:26.320>it's, <00:27:26.495>it's <00:27:26.670>relatively <00:27:26.845>easy <00:27:27.020>to <00:27:27.195>onboard <00:27:27.370>new <00:27:27.545>colleagues

534
00:27:29.745 --> 00:27:33.565
<00:27:29.745>and, <00:27:30.024>uh, <00:27:30.304>it's <00:27:30.584>also <00:27:30.864>really <00:27:31.145>cheap.

535
00:27:33.865 --> 00:27:35.325
<00:27:33.865>So <00:27:34.193>we <00:27:34.522>did <00:27:34.850>the <00:27:35.179>math

536
00:27:35.385 --> 00:27:36.405
<00:27:35.385>and <00:27:35.568>we <00:27:35.752>came <00:27:35.935>to <00:27:36.119>the <00:27:36.303>co

537
00:27:36.545 --> 00:27:39.725
<00:27:36.545>that's <00:27:36.661>about <00:27:36.778>10 <00:27:36.895>x <00:27:37.011>cheaper <00:27:37.128>than <00:27:37.245>if <00:27:37.361>we <00:27:37.478>would <00:27:37.595>go <00:27:37.711>to <00:27:37.828>the <00:27:37.945>cloud.

538
00:27:40.345 --> 00:27:44.045
<00:27:40.345>And <00:27:40.472>the <00:27:40.599>thing <00:27:40.726>is, <00:27:40.854>or <00:27:40.981>have <00:27:41.108>would <00:27:41.235>have <00:27:41.363>in <00:27:41.490>cloud <00:27:41.617>only <00:27:41.745>approach.

539
00:27:45.395 --> 00:27:47.415
<00:27:45.395>The <00:27:45.745>thing <00:27:46.095>is <00:27:46.445>that, <00:27:46.795>um,

540
00:27:48.925 --> 00:27:50.455
<00:27:48.925>this <00:27:49.269>doesn't <00:27:49.613>include <00:27:49.957>labor <00:27:50.302>costs.

541
00:27:50.485 --> 00:27:51.535
<00:27:50.485>I've <00:27:50.721>been <00:27:50.957>asked <00:27:51.193>that <00:27:51.430>before,

542
00:27:52.735 --> 00:27:55.915
<00:27:52.735>but <00:27:52.875>we <00:27:53.014>is <00:27:53.155>like, <00:27:53.294>first <00:27:53.435>of <00:27:53.574>all, <00:27:53.715>it's <00:27:53.854>not <00:27:53.995>very <00:27:54.135>high,

543
00:27:56.655 --> 00:28:00.275
<00:27:56.655>so <00:27:56.810>it's <00:27:56.966>usually <00:27:57.121>below <00:27:57.277>half <00:27:57.432>an <00:27:57.588>ft, <00:27:57.743>a <00:27:57.899>full-time <00:27:58.055>equivalent,

544
00:28:00.775 --> 00:28:04.465
<00:28:00.775>but <00:28:00.950>it's <00:28:01.125>like <00:28:01.300>if <00:28:01.475>you <00:28:01.650>go <00:28:01.825>to <00:28:02.000>the <00:28:02.175>cloud,

545
00:28:04.515 --> 00:28:06.065
<00:28:04.515>there <00:28:04.714>is <00:28:04.913>work <00:28:05.112>to <00:28:05.312>be <00:28:05.511>done <00:28:05.710>as <00:28:05.910>well.

546
00:28:06.165 --> 00:28:08.745
<00:28:06.165>So <00:28:06.445>it's <00:28:06.725>not <00:28:07.004>completely <00:28:07.284>labor <00:28:07.565>free.

547
00:28:08.765 --> 00:28:10.745
<00:28:08.765>So <00:28:08.892>you <00:28:09.019>have <00:28:09.146>to <00:28:09.274>do <00:28:09.401>things <00:28:09.528>and <00:28:09.655>you <00:28:09.783>have <00:28:09.910>to <00:28:10.037>have <00:28:10.165>someone

548
00:28:10.765 --> 00:28:12.745
<00:28:10.765>who <00:28:10.998>knows <00:28:11.231>that <00:28:11.465>and <00:28:11.698>what <00:28:11.931>to <00:28:12.165>do.

549
00:28:13.715 --> 00:28:15.375
<00:28:13.715>So <00:28:14.064>that <00:28:14.415>are <00:28:14.764>the <00:28:15.115>advantages.

550
00:28:16.115 --> 00:28:18.255
<00:28:16.115>And <00:28:16.348>on <00:28:16.581>the <00:28:16.815>other <00:28:17.048>side, <00:28:17.281>we <00:28:17.515>have

551
00:28:18.255 --> 00:28:19.735
<00:28:18.255>of <00:28:18.521>course <00:28:18.787>a <00:28:19.054>set <00:28:19.320>of <00:28:19.587>disadvantages.

552
00:28:19.735 --> 00:28:22.095
<00:28:19.735>And <00:28:19.968>this <00:28:20.201>is <00:28:20.435>mostly <00:28:20.668>related <00:28:20.901>to <00:28:21.135>flexibility.

553
00:28:22.315 --> 00:28:26.265
<00:28:22.315>So <00:28:22.548>we <00:28:22.781>have <00:28:23.015>a <00:28:23.248>single <00:28:23.481>application, <00:28:23.715>so

554
00:28:27.165 --> 00:28:29.305
<00:28:27.165>that's <00:28:27.514>a <00:28:27.865>single <00:28:28.215>deployment <00:28:28.565>unit.

555
00:28:30.355 --> 00:28:32.015
<00:28:30.355>If <00:28:30.705>we <00:28:31.055>have <00:28:31.405>specific <00:28:31.755>requirements

556
00:28:32.015 --> 00:28:34.695
<00:28:32.015>that <00:28:32.170>only <00:28:32.326>affect <00:28:32.481>a <00:28:32.637>certain <00:28:32.792>part <00:28:32.948>of <00:28:33.103>the <00:28:33.259>application <00:28:33.415>occasion,

557
00:28:38.225 --> 00:28:41.325
<00:28:38.225>we <00:28:38.458>basically, <00:28:38.691>it, <00:28:38.925>it <00:28:39.158>will <00:28:39.391>affect <00:28:39.625>everything.

558
00:28:41.425 --> 00:28:44.605
<00:28:41.425>So <00:28:41.552>if <00:28:41.679>we <00:28:41.806>do <00:28:41.934>something <00:28:42.061>like, <00:28:42.188>just <00:28:42.315>to <00:28:42.443>take <00:28:42.570>a <00:28:42.697>simple <00:28:42.825>example,

559
00:28:45.145 --> 00:28:48.645
<00:28:45.145>uh, <00:28:45.285>allow <00:28:45.425>the <00:28:45.565>uploading <00:28:45.705>of <00:28:45.845>images <00:28:45.985>of <00:28:46.125>our <00:28:46.264>servers, <00:28:46.405>we <00:28:46.545>have

560
00:28:48.665 --> 00:28:50.205
<00:28:48.665>to <00:28:49.011>allow <00:28:49.358>a <00:28:49.704>larger <00:28:50.051>payload,

561
00:28:50.545 --> 00:28:53.565
<00:28:50.545>and <00:28:50.700>now <00:28:50.856>we <00:28:51.011>have <00:28:51.167>to <00:28:51.322>think <00:28:51.478>about, <00:28:51.633>hmm, <00:28:51.789>it's <00:28:51.945>allowed

562
00:28:53.585 --> 00:28:57.315
<00:28:53.585>for <00:28:53.785>everything <00:28:53.985>or <00:28:54.185>how <00:28:54.385>can <00:28:54.585>we <00:28:54.785>restrict <00:28:54.985>that?

563
00:28:57.375 --> 00:28:58.955
<00:28:57.375>So <00:28:57.655>that, <00:28:57.935>that's <00:28:58.215>a <00:28:58.495>simple <00:28:58.775>example,

564
00:28:59.455 --> 00:29:02.635
<00:28:59.455>but <00:28:59.595>you <00:28:59.735>also <00:28:59.875>have <00:29:00.014>that <00:29:00.155>on <00:29:00.294>the, <00:29:00.435>on <00:29:00.574>the <00:29:00.715>coding <00:29:00.855>front.

565
00:29:02.695 --> 00:29:04.635
<00:29:02.695>So <00:29:03.044>you <00:29:03.395>could <00:29:03.745>say, <00:29:04.095>um,

566
00:29:05.695 --> 00:29:08.275
<00:29:05.695>if <00:29:05.895>you <00:29:06.095>have <00:29:06.294>specific <00:29:06.495>legal <00:29:06.695>requirements, <00:29:06.895>say <00:29:07.095>for,

567
00:29:08.295 --> 00:29:10.995
<00:29:08.295>for <00:29:08.528>the <00:29:08.761>whole <00:29:08.995>billing <00:29:09.228>and <00:29:09.461>payment <00:29:09.695>processes

568
00:29:11.615 --> 00:29:14.275
<00:29:11.615>and <00:29:11.895>you <00:29:12.175>need <00:29:12.455>to <00:29:12.735>document <00:29:13.015>everything

569
00:29:14.615 --> 00:29:16.555
<00:29:14.615>or <00:29:14.895>need <00:29:15.175>more <00:29:15.455>much <00:29:15.735>tighter <00:29:16.015>documentation,

570
00:29:17.765 --> 00:29:20.505
<00:29:17.765>how <00:29:17.920>do <00:29:18.076>you <00:29:18.231>make <00:29:18.387>sure <00:29:18.542>that <00:29:18.698>only <00:29:18.853>a <00:29:19.009>certain <00:29:19.165>part

571
00:29:20.505 --> 00:29:22.625
<00:29:20.505>of <00:29:20.705>the <00:29:20.905>code <00:29:21.105>is <00:29:21.305>affected <00:29:21.505>by <00:29:21.705>these <00:29:21.905>regulations?

572
00:29:24.005 --> 00:29:25.985
<00:29:24.005>And <00:29:24.285>another <00:29:24.565>thing <00:29:24.845>is <00:29:25.125>that <00:29:25.405>we

573
00:29:26.985 --> 00:29:29.015
<00:29:26.985>don't <00:29:27.185>have <00:29:27.385>the <00:29:27.584>same <00:29:27.784>performance <00:29:27.985>in <00:29:28.185>all <00:29:28.385>regions.

574
00:29:29.235 --> 00:29:33.295
<00:29:29.235>So <00:29:29.375>of <00:29:29.514>course <00:29:29.655>our <00:29:29.794>data <00:29:29.935>center <00:29:30.074>is, <00:29:30.215>uh, <00:29:30.354>located <00:29:30.495>in <00:29:30.635>Germany

575
00:29:35.275 --> 00:29:38.575
<00:29:35.275>and <00:29:35.430>the <00:29:35.586>response <00:29:35.741>signs <00:29:35.897>in <00:29:36.052>Europe <00:29:36.208>are <00:29:36.363>very, <00:29:36.519>very <00:29:36.675>good.

576
00:29:38.965 --> 00:29:43.405
<00:29:38.965>They're <00:29:39.092>still <00:29:39.219>good <00:29:39.346>in <00:29:39.474>the <00:29:39.601>US <00:29:39.728>but <00:29:39.855>in <00:29:39.983>Asia <00:29:40.110>could <00:29:40.237>be <00:29:40.365>better.

577
00:29:43.825 --> 00:29:47.445
<00:29:43.825>So <00:29:43.980>this <00:29:44.136>is, <00:29:44.291>um, <00:29:44.447>a <00:29:44.602>challenge <00:29:44.758>for <00:29:44.913>a <00:29:45.069>global <00:29:45.225>marketplace,

578
00:29:47.505 --> 00:29:50.645
<00:29:47.505>but <00:29:47.660>it's <00:29:47.816>not <00:29:47.971>the <00:29:48.127>only <00:29:48.282>cha <00:29:48.438>challenge <00:29:48.593>for <00:29:48.749>being <00:29:48.905>international,

579
00:29:50.885 --> 00:29:53.845
<00:29:50.885>actually <00:29:51.085>just <00:29:51.285>just <00:29:51.485>to <00:29:51.685>make, <00:29:51.885>especially <00:29:52.085>in <00:29:52.285>Asia,

580
00:29:54.215 --> 00:29:58.085
<00:29:54.215>there <00:29:54.389>are <00:29:54.564>also <00:29:54.740>different <00:29:54.915>requirements <00:29:55.090>on <00:29:55.264>how <00:29:55.439>probably <00:29:55.615>the,

581
00:29:58.265 --> 00:30:00.005
<00:29:58.265>the <00:29:58.498>UX <00:29:58.731>of <00:29:58.965>the <00:29:59.198>sites <00:29:59.431>should <00:29:59.665>be.

582
00:30:00.065 --> 00:30:04.105
<00:30:00.065>So <00:30:00.205>that's <00:30:00.345>getting <00:30:00.485>there <00:30:00.625>probably <00:30:00.765>a <00:30:00.905>bit <00:30:01.045>more <00:30:01.185>complex <00:30:01.325>as <00:30:01.465>well.

583
00:30:04.365 --> 00:30:07.865
<00:30:04.365>And <00:30:04.505>last <00:30:04.645>but <00:30:04.785>not <00:30:04.925>least, <00:30:05.065>we <00:30:05.205>have <00:30:05.345>a <00:30:05.485>deployment <00:30:05.625>wonder <00:30:05.765>back.

584
00:30:07.965 --> 00:30:12.425
<00:30:07.965>So <00:30:08.105>if <00:30:08.245>you <00:30:08.385>deploy, <00:30:08.524>so <00:30:08.665>you <00:30:08.804>always <00:30:08.945>deploy <00:30:09.084>the <00:30:09.225>whole <00:30:09.365>application

585
00:30:14.025 --> 00:30:15.965
<00:30:14.025>and <00:30:14.375>things <00:30:14.725>can <00:30:15.075>go <00:30:15.425>wrong

586
00:30:16.065 --> 00:30:18.805
<00:30:16.065>and <00:30:16.265>you <00:30:16.465>don't <00:30:16.665>really <00:30:16.865>know <00:30:17.065>what <00:30:17.265>you <00:30:17.465>deploy.

587
00:30:19.145 --> 00:30:21.685
<00:30:19.145>So <00:30:19.300>this <00:30:19.456>is <00:30:19.611>always <00:30:19.767>quite <00:30:19.922>exciting <00:30:20.078>if <00:30:20.233>you <00:30:20.389>do <00:30:20.545>that.

588
00:30:22.105 --> 00:30:23.525
<00:30:22.105>And, <00:30:22.360>but <00:30:22.616>it <00:30:22.871>doesn't <00:30:23.127>stop <00:30:23.383>us.

589
00:30:23.625 --> 00:30:27.045
<00:30:23.625>So <00:30:23.825>we <00:30:24.025>actually <00:30:24.225>deploying <00:30:24.425>multiple <00:30:24.625>times <00:30:24.825>per <00:30:25.025>day.

590
00:30:27.465 --> 00:30:30.355
<00:30:27.465>Um, <00:30:27.745>uh, <00:30:28.024>so <00:30:28.304>that's <00:30:28.584>pretty <00:30:28.865>good.

591
00:30:30.455 --> 00:30:31.835
<00:30:30.455>So <00:30:30.703>we, <00:30:30.951>we <00:30:31.200>actually <00:30:31.448>happy <00:30:31.697>there,

592
00:30:32.255 --> 00:30:33.635
<00:30:32.255>but <00:30:32.503>still <00:30:32.751>it's <00:30:33.000>this <00:30:33.248>wonder <00:30:33.497>back

593
00:30:33.775 --> 00:30:36.875
<00:30:33.775>and <00:30:33.950>uh, <00:30:34.125>it <00:30:34.300>makes <00:30:34.475>deployment <00:30:34.650>a <00:30:34.825>bit <00:30:35.000>more <00:30:35.175>exciting.

594
00:30:40.465 --> 00:30:43.755
<00:30:40.465>Okay, <00:30:40.814>but <00:30:41.165>still <00:30:41.514>complexity, <00:30:41.865>huh?

595
00:30:45.725 --> 00:30:49.115
<00:30:45.725>Let's <00:30:45.865>be <00:30:46.004>honest, <00:30:46.145>if <00:30:46.284>we <00:30:46.425>have <00:30:46.564>such <00:30:46.705>a <00:30:46.844>system <00:30:46.985>over <00:30:47.125>time,

596
00:30:49.895 --> 00:30:51.275
<00:30:49.895>it <00:30:50.309>will <00:30:50.723>int <00:30:51.137>way

597
00:30:51.935 --> 00:30:55.795
<00:30:51.935>become <00:30:52.090>monolithic <00:30:52.246>if <00:30:52.401>we <00:30:52.557>don't <00:30:52.712>stop <00:30:52.868>it <00:30:53.023>from <00:30:53.179>become, <00:30:53.335>uh,

598
00:30:56.025 --> 00:30:57.875
<00:30:56.025>from <00:30:56.375>developing <00:30:56.725>in <00:30:57.075>that <00:30:57.425>direction.

599
00:30:58.295 --> 00:31:01.175
<00:30:58.295>And <00:30:58.761>we, <00:30:59.228>excuse <00:30:59.695>me,

600
00:31:04.275 --> 00:31:05.745
<00:31:04.275>we've <00:31:04.716>actually <00:31:05.157>been <00:31:05.598>there.

601
00:31:06.845 --> 00:31:10.825
<00:31:06.845>And <00:31:07.311>this <00:31:07.778>is <00:31:08.245>something

602
00:31:11.355 --> 00:31:15.145
<00:31:11.355>which <00:31:11.495>in <00:31:11.635>professional <00:31:11.775>circles <00:31:11.915>you <00:31:12.055>call <00:31:12.195>a <00:31:12.335>big <00:31:12.475>ball <00:31:12.615>of <00:31:12.755>mud.

603
00:31:16.455 --> 00:31:20.875
<00:31:16.455>Uh, <00:31:16.610>what <00:31:16.766>you <00:31:16.921>see <00:31:17.077>here <00:31:17.232>is, <00:31:17.388>uh, <00:31:17.543>yeah, <00:31:17.699>the <00:31:17.855>biggest

604
00:31:21.685 --> 00:31:24.315
<00:31:21.685>class <00:31:21.885>circle <00:31:22.085>that <00:31:22.284>we <00:31:22.485>have <00:31:22.685>in <00:31:22.885>our <00:31:23.085>system.

605
00:31:24.495 --> 00:31:29.395
<00:31:24.495>So <00:31:24.695>here, <00:31:24.895>every <00:31:25.094>small <00:31:25.294>rectangle <00:31:25.495>is <00:31:25.695>single <00:31:25.895>class

606
00:31:29.455 --> 00:31:31.755
<00:31:29.455>and <00:31:29.688>every, <00:31:29.921>every <00:31:30.155>arrow <00:31:30.388>is <00:31:30.621>a <00:31:30.855>dependency.

607
00:31:31.755 --> 00:31:34.075
<00:31:31.755>And <00:31:31.955>basically <00:31:32.155>you <00:31:32.355>can <00:31:32.555>go <00:31:32.755>from <00:31:32.955>every <00:31:33.155>rectangle

608
00:31:34.415 --> 00:31:36.195
<00:31:34.415>to <00:31:34.764>any <00:31:35.115>other <00:31:35.465>rectangle <00:31:35.815>here

609
00:31:36.615 --> 00:31:40.475
<00:31:36.615>and <00:31:36.755>find <00:31:36.895>a <00:31:37.035>path <00:31:37.175>back <00:31:37.315>without <00:31:37.455>visiting <00:31:37.595>the <00:31:37.735>same <00:31:37.875>class <00:31:38.015>twice.

610
00:31:41.695 --> 00:31:43.755
<00:31:41.695>And <00:31:41.850>I <00:31:42.006>also, <00:31:42.161>I'm <00:31:42.317>pretty <00:31:42.472>sure <00:31:42.628>there's <00:31:42.783>more <00:31:42.939>than <00:31:43.095>one

611
00:31:43.755 --> 00:31:45.275
<00:31:43.755>path <00:31:44.028>for <00:31:44.302>most <00:31:44.575>of <00:31:44.849>the <00:31:45.123>cases.

612
00:31:45.455 --> 00:31:48.395
<00:31:45.455>So <00:31:45.629>this <00:31:45.804>is, <00:31:45.980>this <00:31:46.155>is <00:31:46.330>quite <00:31:46.504>an, <00:31:46.679>an <00:31:46.855>issue

613
00:31:48.395 --> 00:31:50.635
<00:31:48.395>because, <00:31:49.095>um, <00:31:49.795>here

614
00:31:53.095 --> 00:31:56.345
<00:31:53.095>it's <00:31:53.270>impossible <00:31:53.445>to <00:31:53.620>split <00:31:53.795>the <00:31:53.970>system <00:31:54.145>in <00:31:54.320>separate <00:31:54.495>path.

615
00:31:56.445 --> 00:31:58.185
<00:31:56.445>So <00:31:56.600>even <00:31:56.756>if <00:31:56.911>you <00:31:57.067>were <00:31:57.222>to <00:31:57.378>say, <00:31:57.533>okay, <00:31:57.689>we <00:31:57.845>want

616
00:31:58.185 --> 00:32:02.185
<00:31:58.185>to <00:31:58.385>have <00:31:58.585>separate <00:31:58.784>modules, <00:31:58.985>it's <00:31:59.185>not <00:31:59.385>directly <00:31:59.585>possible

617
00:32:02.185 --> 00:32:04.345
<00:32:02.185>because <00:32:02.418>it's, <00:32:02.651>you <00:32:02.885>have <00:32:03.118>this <00:32:03.351>high <00:32:03.585>entanglement

618
00:32:04.885 --> 00:32:07.065
<00:32:04.885>and <00:32:05.060>there's <00:32:05.235>also <00:32:05.410>been <00:32:05.585>a <00:32:05.760>lot <00:32:05.935>of <00:32:06.110>talk <00:32:06.285>about

619
00:32:07.855 --> 00:32:09.145
<00:32:07.855>cognitive <00:32:08.242>load <00:32:08.629>these <00:32:09.016>days.

620
00:32:09.845 --> 00:32:12.845
<00:32:09.845>So <00:32:10.311>that <00:32:10.778>complexity <00:32:11.245>matters.

621
00:32:13.185 --> 00:32:15.045
<00:32:13.185>So <00:32:13.385>how <00:32:13.585>much <00:32:13.784>do <00:32:13.985>you <00:32:14.185>have <00:32:14.385>to <00:32:14.585>understand

622
00:32:15.185 --> 00:32:17.165
<00:32:15.185>to <00:32:15.385>really <00:32:15.585>develop <00:32:15.784>something <00:32:15.985>or <00:32:16.185>fix <00:32:16.385>a <00:32:16.585>problem?

623
00:32:17.825 --> 00:32:19.165
<00:32:17.825>And <00:32:18.126>the <00:32:18.428>cognitive <00:32:18.729>load <00:32:19.031>can

624
00:32:19.165 --> 00:32:21.085
<00:32:19.165>of <00:32:19.398>course <00:32:19.631>be <00:32:19.865>in <00:32:20.098>the <00:32:20.331>deployment <00:32:20.565>structure

625
00:32:21.085 --> 00:32:24.405
<00:32:21.085>and <00:32:21.212>the <00:32:21.339>setup <00:32:21.466>there, <00:32:21.594>but <00:32:21.721>it <00:32:21.848>can <00:32:21.975>also <00:32:22.103>be <00:32:22.230>in <00:32:22.357>the <00:32:22.485>code

626
00:32:24.585 --> 00:32:25.925
<00:32:24.585>and <00:32:24.886>in <00:32:25.188>the <00:32:25.489>dependencies <00:32:25.791>there.

627
00:32:26.225 --> 00:32:28.765
<00:32:26.225>So <00:32:26.574>there's <00:32:26.925>definitely <00:32:27.274>something <00:32:27.625>we

628
00:32:28.765 --> 00:32:29.845
<00:32:28.765>need <00:32:28.959>to <00:32:29.153>do, <00:32:29.348>do <00:32:29.542>about <00:32:29.737>this.

629
00:32:30.225 --> 00:32:34.045
<00:32:30.225>And <00:32:30.380>last, <00:32:30.536>but <00:32:30.691>at <00:32:30.847>least <00:32:31.002>since <00:32:31.158>everything <00:32:31.313>is <00:32:31.469>in <00:32:31.625>one

630
00:32:34.195 --> 00:32:37.285
<00:32:34.195>application, <00:32:34.544>there's <00:32:34.895>no <00:32:35.245>clear <00:32:35.595>separation

631
00:32:37.285 --> 00:32:41.965
<00:32:37.285>between <00:32:37.518>what's <00:32:37.751>actually <00:32:37.985>our <00:32:38.218>core <00:32:38.451>business, <00:32:38.685>where

632
00:32:42.715 --> 00:32:45.085
<00:32:42.715>what <00:32:42.995>are <00:32:43.274>the <00:32:43.554>different <00:32:43.834>differentiating <00:32:44.115>factors

633
00:32:45.265 --> 00:32:47.965
<00:32:45.265>of <00:32:45.498>our <00:32:45.731>application, <00:32:45.965>which <00:32:46.198>is <00:32:46.431>the <00:32:46.665>supporting

634
00:32:47.965 --> 00:32:50.325
<00:32:47.965>and <00:32:48.198>helping <00:32:48.431>us <00:32:48.665>to <00:32:48.898>do <00:32:49.131>our <00:32:49.365>job

635
00:32:50.425 --> 00:32:52.765
<00:32:50.425>and <00:32:50.580>which <00:32:50.736>are <00:32:50.891>parts <00:32:51.047>of <00:32:51.202>the <00:32:51.358>application <00:32:51.513>are <00:32:51.669>actually <00:32:51.825>generic

636
00:32:52.825 --> 00:32:56.325
<00:32:52.825>and <00:32:52.980>could <00:32:53.136>be <00:32:53.291>replaced <00:32:53.447>by, <00:32:53.602>uh, <00:32:53.758>components <00:32:53.913>of <00:32:54.069>the <00:32:54.225>shelf.

637
00:32:56.585 --> 00:33:00.925
<00:32:56.585>So <00:32:56.818>the <00:32:57.051>challenge <00:32:57.285>now <00:32:57.518>is <00:32:57.751>that <00:32:57.985>we

638
00:33:01.965 --> 00:33:04.005
<00:33:01.965>actually <00:33:02.198>have <00:33:02.431>to <00:33:02.665>do <00:33:02.898>something <00:33:03.131>about <00:33:03.365>this.

639
00:33:04.105 --> 00:33:07.865
<00:33:04.105>So <00:33:04.305>we, <00:33:04.505>we <00:33:04.705>must <00:33:04.905>change <00:33:05.105>that <00:33:05.305>and <00:33:05.505>we,

640
00:33:09.495 --> 00:33:11.635
<00:33:09.495>but <00:33:09.695>we <00:33:09.895>have <00:33:10.094>the <00:33:10.294>challenge <00:33:10.495>that <00:33:10.695>product <00:33:10.895>development

641
00:33:11.635 --> 00:33:13.195
<00:33:11.635>of <00:33:11.835>course <00:33:12.035>must <00:33:12.235>continue <00:33:12.435>at <00:33:12.635>the <00:33:12.835>same <00:33:13.035>pace

642
00:33:13.195 --> 00:33:16.875
<00:33:13.195>because <00:33:13.395>competition <00:33:13.595>is <00:33:13.794>not <00:33:13.995>sleeping, <00:33:14.195>things <00:33:14.395>are <00:33:14.595>changing.

643
00:33:17.455 --> 00:33:19.995
<00:33:17.455>Uh, <00:33:17.655>eBay <00:33:17.855>is <00:33:18.054>getting <00:33:18.254>into <00:33:18.455>the <00:33:18.655>luxury, <00:33:18.855>uh,

644
00:33:20.355 --> 00:33:21.435
<00:33:20.355>category <00:33:20.549>more <00:33:20.743>and <00:33:20.938>more <00:33:21.132>and <00:33:21.327>more.

645
00:33:22.015 --> 00:33:25.265
<00:33:22.015>Um, <00:33:22.155>so <00:33:22.295>we <00:33:22.435>have <00:33:22.575>to <00:33:22.715>position <00:33:22.855>ourself, <00:33:22.995>we <00:33:23.135>have <00:33:23.275>to <00:33:23.415>do

646
00:33:25.265 --> 00:33:27.705
<00:33:25.265>that <00:33:25.615>something <00:33:25.965>now, <00:33:26.315>but <00:33:26.665>how

647
00:33:28.485 --> 00:33:30.425
<00:33:28.485>the <00:33:28.685>f <00:33:28.885>are <00:33:29.084>we <00:33:29.284>supposed <00:33:29.485>to <00:33:29.685>achieve <00:33:29.885>that?

648
00:33:30.565 --> 00:33:32.025
<00:33:30.565>So <00:33:30.784>how <00:33:31.003>do <00:33:31.222>we <00:33:31.441>deal <00:33:31.660>with <00:33:31.879>this

649
00:33:32.645 --> 00:33:36.085
<00:33:32.645>and <00:33:32.995>still <00:33:33.345>move <00:33:33.695>on <00:33:34.045>quickly?

650
00:33:37.065 --> 00:33:39.045
<00:33:37.065>And <00:33:37.415>this <00:33:37.765>is <00:33:38.115>something <00:33:38.465>that

651
00:33:40.405 --> 00:33:42.245
<00:33:40.405>I <00:33:40.605>personally <00:33:40.805>call <00:33:41.004>it <00:33:41.205>the <00:33:41.405>technical <00:33:41.605>debt <00:33:41.805>dilemma,

652
00:33:42.745 --> 00:33:45.765
<00:33:42.745>and <00:33:42.900>it's <00:33:43.056>something <00:33:43.211>I've <00:33:43.367>been <00:33:43.522>facing <00:33:43.678>in <00:33:43.833>my <00:33:43.989>career <00:33:44.145>on

653
00:33:45.765 --> 00:33:49.565
<00:33:45.765>different <00:33:45.965>occasions <00:33:46.165>again <00:33:46.365>and <00:33:46.565>again <00:33:46.765>and <00:33:46.965>again, <00:33:47.165>again.

654
00:33:49.785 --> 00:33:51.765
<00:33:49.785>And <00:33:50.065>it's <00:33:50.345>always <00:33:50.625>the <00:33:50.905>conflict <00:33:51.185>between

655
00:33:52.775 --> 00:33:54.325
<00:33:52.775>let's <00:33:53.240>build <00:33:53.705>something <00:33:54.170>now

656
00:33:55.265 --> 00:34:00.035
<00:33:55.265>or <00:33:55.545>let's, <00:33:55.825>let's <00:33:56.105>improve <00:33:56.385>the <00:33:56.665>system.

657
00:34:00.165 --> 00:34:03.555
<00:34:00.165>Let's, <00:34:00.398>let's, <00:34:00.631>uh, <00:34:00.865>tackle <00:34:01.098>the <00:34:01.331>tech <00:34:01.565>debt.

658
00:34:04.375 --> 00:34:07.315
<00:34:04.375>And <00:34:04.550>the <00:34:04.725>conflict <00:34:04.900>is <00:34:05.075>basically <00:34:05.250>saying, <00:34:05.425>so <00:34:05.600>we <00:34:05.775>want

659
00:34:07.315 --> 00:34:08.395
<00:34:07.315>to <00:34:07.509>be <00:34:07.703>successful <00:34:07.898>in <00:34:08.092>the <00:34:08.286>future.

660
00:34:08.785 --> 00:34:12.875
<00:34:08.784>This <00:34:08.960>basically <00:34:09.134>means <00:34:09.310>that <00:34:09.484>we <00:34:09.659>need <00:34:09.835>to <00:34:10.009>react <00:34:10.185>quickly

661
00:34:12.975 --> 00:34:14.195
<00:34:12.975>to <00:34:13.194>user <00:34:13.414>needs <00:34:13.633>in <00:34:13.853>the <00:34:14.073>future.

662
00:34:14.655 --> 00:34:17.195
<00:34:14.655>And <00:34:14.830>in <00:34:15.005>order <00:34:15.180>to <00:34:15.355>be <00:34:15.530>able <00:34:15.705>to <00:34:15.880>react <00:34:16.055>quickly

663
00:34:17.255 --> 00:34:19.235
<00:34:17.255>to <00:34:17.455>user <00:34:17.655>needs <00:34:17.855>in <00:34:18.055>the <00:34:18.255>future, <00:34:18.455>we <00:34:18.655>need

664
00:34:19.235 --> 00:34:20.715
<00:34:19.235>to <00:34:19.679>maximize <00:34:20.123>the <00:34:20.567>maintainability

665
00:34:20.735 --> 00:34:24.435
<00:34:20.735>and <00:34:20.890>flexibility <00:34:21.046>of <00:34:21.201>our <00:34:21.357>system, <00:34:21.512>which <00:34:21.668>translates <00:34:21.823>to, <00:34:21.979>we <00:34:22.135>need

666
00:34:24.435 --> 00:34:26.555
<00:34:24.435>to <00:34:24.668>reduce <00:34:24.901>technical <00:34:25.134>debt <00:34:25.368>at <00:34:25.601>the <00:34:25.835>moment,

667
00:34:28.095 --> 00:34:32.755
<00:34:28.094>but <00:34:28.294>to <00:34:28.495>be <00:34:28.694>successful <00:34:28.895>now, <00:34:29.094>we <00:34:29.294>actually <00:34:29.495>have

668
00:34:32.755 --> 00:34:34.715
<00:34:32.755>to <00:34:32.988>react <00:34:33.221>quickly <00:34:33.455>to <00:34:33.688>user <00:34:33.921>needs <00:34:34.155>now

669
00:34:35.055 --> 00:34:36.475
<00:34:35.054>and <00:34:35.374>the <00:34:35.694>market <00:34:36.013>demands <00:34:36.333>now,

670
00:34:37.135 --> 00:34:39.155
<00:34:37.135>and <00:34:37.368>we <00:34:37.601>must <00:34:37.835>maximize <00:34:38.068>our <00:34:38.301>customer <00:34:38.535>value

671
00:34:39.655 --> 00:34:42.155
<00:34:39.655>and <00:34:39.888>um, <00:34:40.121>work <00:34:40.355>on <00:34:40.588>the <00:34:40.821>next <00:34:41.055>features.

672
00:34:43.215 --> 00:34:45.675
<00:34:43.215>And <00:34:43.495>so <00:34:43.775>what <00:34:44.055>should <00:34:44.335>we <00:34:44.615>do?

673
00:34:46.535 --> 00:34:49.475
<00:34:46.534>And <00:34:46.734>probably <00:34:46.935>you <00:34:47.134>had <00:34:47.335>such <00:34:47.534>discussions <00:34:47.734>as <00:34:47.935>well,

674
00:34:50.335 --> 00:34:53.515
<00:34:50.335>but <00:34:50.490>I, <00:34:50.646>my <00:34:50.801>assumption <00:34:50.957>is <00:34:51.112>that <00:34:51.268>this <00:34:51.423>is <00:34:51.579>only, <00:34:51.735>uh,

675
00:34:56.115 --> 00:34:57.285
<00:34:56.114>it's <00:34:56.466>a <00:34:56.817>false <00:34:57.167>dichotomy.

676
00:34:57.625 --> 00:34:59.645
<00:34:57.625>So <00:34:57.858>if <00:34:58.091>we <00:34:58.325>look <00:34:58.558>at <00:34:58.791>the <00:34:59.025>assumptions

677
00:34:59.645 --> 00:35:03.025
<00:34:59.645>behind <00:34:59.995>it, <00:35:00.345>it'll <00:35:00.695>become <00:35:01.045>obvious.

678
00:35:03.165 --> 00:35:06.505
<00:35:03.165>So <00:35:03.272>the <00:35:03.380>first <00:35:03.488>one <00:35:03.595>I <00:35:03.703>would <00:35:03.811>like <00:35:03.918>to <00:35:04.026>point <00:35:04.134>out <00:35:04.241>is <00:35:04.349>that <00:35:04.457>if <00:35:04.565>we

679
00:35:06.505 --> 00:35:08.945
<00:35:06.505>to <00:35:06.705>reduce <00:35:06.905>technical <00:35:07.105>depth <00:35:07.305>now <00:35:07.505>the <00:35:07.705>code <00:35:07.905>base

680
00:35:08.965 --> 00:35:12.185
<00:35:08.965>and <00:35:09.140>the <00:35:09.315>architecture <00:35:09.490>are <00:35:09.665>significantly <00:35:09.840>better <00:35:10.015>in <00:35:10.190>the <00:35:10.365>future.

681
00:35:13.675 --> 00:35:17.015
<00:35:13.675>And <00:35:13.850>I <00:35:14.025>don't <00:35:14.200>know <00:35:14.375>if <00:35:14.550>you've <00:35:14.725>had <00:35:14.900>this <00:35:15.075>experience,

682
00:35:17.095 --> 00:35:21.675
<00:35:17.095>I <00:35:17.222>definitely <00:35:17.349>had <00:35:17.476>it <00:35:17.604>that <00:35:17.731>you <00:35:17.858>look <00:35:17.985>at <00:35:18.113>some <00:35:18.240>code, <00:35:18.367>you <00:35:18.495>think,

683
00:35:21.675 --> 00:35:23.795
<00:35:21.675>oh, <00:35:21.815>I <00:35:21.955>should <00:35:22.095>refactor <00:35:22.235>this, <00:35:22.375>this <00:35:22.515>is, <00:35:22.655>this <00:35:22.795>is <00:35:22.935>not <00:35:23.075>good.

684
00:35:24.695 --> 00:35:28.625
<00:35:24.695>You <00:35:24.870>do <00:35:25.045>a <00:35:25.220>refactoring <00:35:25.395>and <00:35:25.570>you <00:35:25.745>are <00:35:25.920>pretty <00:35:26.095>happy.

685
00:35:29.135 --> 00:35:31.665
<00:35:29.135>Half <00:35:29.275>a <00:35:29.415>year <00:35:29.555>later <00:35:29.695>you <00:35:29.835>come <00:35:29.975>back <00:35:30.115>and <00:35:30.255>look <00:35:30.395>at <00:35:30.535>it

686
00:35:31.665 --> 00:35:33.745
<00:35:31.665>and <00:35:31.945>think, <00:35:32.225>what <00:35:32.505>was <00:35:32.785>I <00:35:33.065>thinking?

687
00:35:34.725 --> 00:35:37.065
<00:35:34.725>So <00:35:34.900>the <00:35:35.075>point <00:35:35.250>here <00:35:35.424>I <00:35:35.600>want <00:35:35.775>to <00:35:35.950>make <00:35:36.125>is

688
00:35:39.345 --> 00:35:41.205
<00:35:39.345>if <00:35:39.625>you <00:35:39.904>think <00:35:40.185>you're <00:35:40.464>improving <00:35:40.745>something,

689
00:35:41.385 --> 00:35:43.045
<00:35:41.385>it <00:35:41.851>doesn't <00:35:42.318>necessarily <00:35:42.785>mean

690
00:35:43.195 --> 00:35:45.205
<00:35:43.195>that <00:35:43.395>it <00:35:43.595>is <00:35:43.795>actually <00:35:43.995>better <00:35:44.195>in <00:35:44.395>the <00:35:44.595>future.

691
00:35:46.145 --> 00:35:47.645
<00:35:46.145>And <00:35:46.313>there <00:35:46.482>are <00:35:46.651>a <00:35:46.820>couple <00:35:46.988>of <00:35:47.157>reasons <00:35:47.326>for <00:35:47.495>that.

692
00:35:48.195 --> 00:35:53.155
<00:35:48.195>Yeah, <00:35:48.350>the, <00:35:48.506>you <00:35:48.661>need <00:35:48.817>first <00:35:48.972>of <00:35:49.128>all <00:35:49.283>a <00:35:49.439>common <00:35:49.595>understanding

693
00:35:53.175 --> 00:35:54.995
<00:35:53.175>of <00:35:53.455>what <00:35:53.735>this <00:35:54.015>better <00:35:54.295>actually <00:35:54.575>means

694
00:35:55.975 --> 00:35:58.365
<00:35:55.975>in <00:35:56.208>your <00:35:56.441>teams <00:35:56.674>or <00:35:56.908>in <00:35:57.141>your <00:35:57.375>team.

695
00:35:59.035 --> 00:36:02.125
<00:35:59.035>Because <00:35:59.210>if <00:35:59.384>you <00:35:59.560>don't <00:35:59.734>agree <00:35:59.910>on <00:36:00.085>what's <00:36:00.259>actually <00:36:00.435>better,

696
00:36:02.635 --> 00:36:05.765
<00:36:02.635>then <00:36:02.868>developer <00:36:03.101>A <00:36:03.335>moves <00:36:03.568>in <00:36:03.801>this <00:36:04.035>direction

697
00:36:05.765 --> 00:36:08.085
<00:36:05.765>and <00:36:05.998>developer <00:36:06.231>B <00:36:06.464>moves <00:36:06.698>in <00:36:06.931>that <00:36:07.165>direction.

698
00:36:08.225 --> 00:36:10.445
<00:36:08.225>So <00:36:08.458>that's <00:36:08.691>a <00:36:08.924>bit <00:36:09.158>of <00:36:09.391>a <00:36:09.625>problem.

699
00:36:10.665 --> 00:36:14.925
<00:36:10.665>And <00:36:10.805>uh, <00:36:10.945>whenever <00:36:11.085>developer <00:36:11.225>B <00:36:11.365>comes <00:36:11.505>to <00:36:11.645>code <00:36:11.785>from <00:36:11.925>developer <00:36:12.065>A,

700
00:36:14.945 --> 00:36:16.325
<00:36:14.945>he <00:36:15.152>will <00:36:15.359>move <00:36:15.566>it <00:36:15.773>in <00:36:15.980>that <00:36:16.187>direction.

701
00:36:16.385 --> 00:36:18.765
<00:36:16.385>It <00:36:16.540>goes <00:36:16.696>back <00:36:16.851>and <00:36:17.007>forth <00:36:17.162>and <00:36:17.318>they <00:36:17.473>will <00:36:17.629>never <00:36:17.785>agree.

702
00:36:19.515 --> 00:36:21.455
<00:36:19.515>So <00:36:19.795>you <00:36:20.075>see <00:36:20.355>the <00:36:20.634>problem <00:36:20.915>last,

703
00:36:24.645 --> 00:36:28.825
<00:36:24.645>excuse <00:36:24.878>me, <00:36:25.111>next, <00:36:25.345>you <00:36:25.578>need <00:36:25.811>clear <00:36:26.045>criteria,

704
00:36:29.245 --> 00:36:31.185
<00:36:29.245>how <00:36:29.444>the <00:36:29.645>new <00:36:29.845>solution <00:36:30.045>needs <00:36:30.245>to <00:36:30.444>be <00:36:30.645>better

705
00:36:31.185 --> 00:36:34.665
<00:36:31.185>because <00:36:31.384>you <00:36:31.585>can <00:36:31.785>have <00:36:31.985>two <00:36:32.185>solution, <00:36:32.384>two <00:36:32.585>solutions,

706
00:36:34.665 --> 00:36:36.385
<00:36:34.665>which <00:36:35.131>are <00:36:35.598>both <00:36:36.065>valid,

707
00:36:37.365 --> 00:36:41.145
<00:36:37.365>but <00:36:37.540>just <00:36:37.714>depending <00:36:37.890>on <00:36:38.064>whether <00:36:38.240>performance <00:36:38.415>is <00:36:38.589>more <00:36:38.765>important

708
00:36:41.245 --> 00:36:44.025
<00:36:41.245>or <00:36:41.444>maintainability <00:36:41.645>is <00:36:41.845>more <00:36:42.045>important <00:36:42.245>to <00:36:42.444>you, <00:36:42.645>each

709
00:36:44.025 --> 00:36:45.185
<00:36:44.025>of <00:36:44.286>one <00:36:44.547>could <00:36:44.808>be <00:36:45.069>better.

710
00:36:45.845 --> 00:36:48.705
<00:36:45.845>So <00:36:45.972>you <00:36:46.099>need <00:36:46.226>to <00:36:46.354>know <00:36:46.481>what <00:36:46.608>are <00:36:46.735>the <00:36:46.863>criteria <00:36:46.990>you're <00:36:47.117>looking <00:36:47.245>at.

711
00:36:49.405 --> 00:36:52.905
<00:36:49.405>And <00:36:49.638>a <00:36:49.871>good <00:36:50.105>architecture <00:36:50.338>is <00:36:50.571>always <00:36:50.805>determined

712
00:36:52.905 --> 00:36:53.905
<00:36:52.905>what <00:36:53.205>is <00:36:53.505>built <00:36:53.805>next.

713
00:36:54.125 --> 00:36:58.855
<00:36:54.125>So <00:36:54.265>if <00:36:54.405>you <00:36:54.545>try <00:36:54.685>to <00:36:54.825>optimize <00:36:54.965>for <00:36:55.105>everything, <00:36:55.245>it <00:36:55.385>won't <00:36:55.525>work.

714
00:36:58.915 --> 00:37:00.135
<00:36:58.915>You <00:36:59.189>will <00:36:59.464>be <00:36:59.738>over <00:37:00.013>engineering.

715
00:37:00.195 --> 00:37:01.855
<00:37:00.195>But <00:37:00.428>if <00:37:00.661>you <00:37:00.895>really <00:37:01.128>know <00:37:01.361>what's <00:37:01.595>coming

716
00:37:02.635 --> 00:37:05.495
<00:37:02.635>or <00:37:02.775>at <00:37:02.915>least <00:37:03.055>have <00:37:03.195>a <00:37:03.335>bit <00:37:03.475>of <00:37:03.615>a <00:37:03.755>look <00:37:03.895>ahead, <00:37:04.035>then

717
00:37:06.715 --> 00:37:09.665
<00:37:06.715>you <00:37:06.995>can <00:37:07.275>build <00:37:07.555>a <00:37:07.835>better <00:37:08.115>architecture,

718
00:37:09.705 --> 00:37:10.905
<00:37:09.705>a <00:37:09.884>bit <00:37:10.065>of <00:37:10.245>structure <00:37:10.425>for <00:37:10.605>your <00:37:10.785>system.

719
00:37:11.205 --> 00:37:12.745
<00:37:11.205>And <00:37:11.403>that <00:37:11.601>brings <00:37:11.799>me <00:37:11.997>to <00:37:12.194>the <00:37:12.393>next <00:37:12.591>point,

720
00:37:12.745 --> 00:37:15.825
<00:37:12.745>because <00:37:12.944>often <00:37:13.145>we <00:37:13.345>perceive <00:37:13.545>it <00:37:13.745>as <00:37:13.944>a <00:37:14.145>conflict

721
00:37:15.825 --> 00:37:17.465
<00:37:15.825>that <00:37:15.980>you <00:37:16.136>can <00:37:16.291>either <00:37:16.447>do <00:37:16.602>the <00:37:16.758>one <00:37:16.913>or <00:37:17.069>the <00:37:17.225>other,

722
00:37:17.965 --> 00:37:21.265
<00:37:17.965>but <00:37:18.120>already, <00:37:18.276>Martin <00:37:18.431>Fowler <00:37:18.587>pointed <00:37:18.742>out <00:37:18.898>quite <00:37:19.053>a <00:37:19.209>while <00:37:19.365>ago

723
00:37:21.535 --> 00:37:24.105
<00:37:21.535>that <00:37:21.690>it <00:37:21.846>doesn't <00:37:22.001>have <00:37:22.157>to <00:37:22.312>be <00:37:22.468>the <00:37:22.623>case <00:37:22.779>because <00:37:22.935>like

724
00:37:24.345 --> 00:37:26.585
<00:37:24.345>whenever <00:37:24.500>you <00:37:24.656>build <00:37:24.811>a <00:37:24.967>new <00:37:25.122>feature <00:37:25.278>into <00:37:25.433>your <00:37:25.589>code <00:37:25.745>base,

725
00:37:26.965 --> 00:37:30.755
<00:37:26.965>you <00:37:27.120>can <00:37:27.276>actually <00:37:27.431>look <00:37:27.587>at <00:37:27.742>it, <00:37:27.898>look <00:37:28.053>at <00:37:28.209>the <00:37:28.365>code

726
00:37:31.175 --> 00:37:33.795
<00:37:31.175>and <00:37:31.375>decide, <00:37:31.575>okay, <00:37:31.775>can <00:37:31.975>I <00:37:32.175>build <00:37:32.375>it <00:37:32.575>in?

727
00:37:34.175 --> 00:37:35.355
<00:37:34.175>If <00:37:34.440>it's <00:37:34.706>easy, <00:37:34.971>do <00:37:35.237>it.

728
00:37:35.375 --> 00:37:38.795
<00:37:35.375>If <00:37:35.515>it's <00:37:35.655>not, <00:37:35.795>probably <00:37:35.935>I <00:37:36.075>need <00:37:36.215>to <00:37:36.355>restructure <00:37:36.495>my <00:37:36.635>code <00:37:36.775>so

729
00:37:38.795 --> 00:37:42.235
<00:37:38.795>that <00:37:38.995>it <00:37:39.195>becomes <00:37:39.395>easy <00:37:39.595>to <00:37:39.795>build <00:37:39.995>this <00:37:40.195>feature.

730
00:37:43.545 --> 00:37:44.845
<00:37:43.545>And <00:37:43.935>with <00:37:44.325>this <00:37:44.714>philosophy,

731
00:37:45.705 --> 00:37:48.125
<00:37:45.705>we <00:37:45.985>can <00:37:46.265>actually <00:37:46.545>reduce <00:37:46.825>technical <00:37:47.105>depth.

732
00:37:48.265 --> 00:37:50.045
<00:37:48.265>We <00:37:48.498>now <00:37:48.731>know <00:37:48.964>what <00:37:49.198>this <00:37:49.431>better <00:37:49.665>is.

733
00:37:51.315 --> 00:37:53.135
<00:37:51.315>We <00:37:51.470>then <00:37:51.626>know <00:37:51.781>what, <00:37:51.937>like <00:37:52.092>if <00:37:52.248>we <00:37:52.403>have <00:37:52.559>a <00:37:52.715>feature

734
00:37:53.275 --> 00:37:57.035
<00:37:53.275>or <00:37:53.508>even <00:37:53.741>a <00:37:53.975>bigger, <00:37:54.208>um, <00:37:54.441>product <00:37:54.675>change

735
00:37:57.035 --> 00:38:00.275
<00:37:57.035>or <00:37:57.174>whatever <00:37:57.315>you're <00:37:57.455>going <00:37:57.595>to <00:37:57.734>do, <00:37:57.875>you <00:37:58.015>know <00:37:58.154>where <00:37:58.295>you're <00:37:58.435>going.

736
00:38:00.815 --> 00:38:02.395
<00:38:00.815>So <00:38:01.048>now <00:38:01.281>you <00:38:01.515>have <00:38:01.748>all, <00:38:01.981>you <00:38:02.215>need

737
00:38:02.495 --> 00:38:06.235
<00:38:02.495>to <00:38:02.650>really <00:38:02.806>build <00:38:02.961>a <00:38:03.117>good <00:38:03.272>structure <00:38:03.428>that <00:38:03.583>fulfills <00:38:03.739>the <00:38:03.895>needs

738
00:38:06.235 --> 00:38:08.675
<00:38:06.235>that <00:38:06.410>you <00:38:06.585>have <00:38:06.760>and <00:38:06.935>really <00:38:07.110>have <00:38:07.285>a <00:38:07.460>good <00:38:07.635>opportunity

739
00:38:08.775 --> 00:38:10.355
<00:38:08.775>to <00:38:09.241>reduce <00:38:09.708>technical <00:38:10.175>debt.

740
00:38:10.575 --> 00:38:13.595
<00:38:10.575>You <00:38:10.730>actually <00:38:10.886>also <00:38:11.041>have <00:38:11.197>the <00:38:11.352>right <00:38:11.508>part <00:38:11.663>of <00:38:11.819>the <00:38:11.975>system

741
00:38:13.595 --> 00:38:15.355
<00:38:13.595>where <00:38:13.875>it's <00:38:14.154>worth <00:38:14.435>reducing <00:38:14.714>technical <00:38:14.995>debt.

742
00:38:15.415 --> 00:38:20.395
<00:38:15.415>So <00:38:15.590>one <00:38:15.765>of <00:38:15.940>the <00:38:16.115>assumptions <00:38:16.290>you <00:38:16.465>always <00:38:16.640>like <00:38:16.815>one,

743
00:38:20.395 --> 00:38:21.435
<00:38:20.395>always <00:38:20.707>faces <00:38:21.019>is <00:38:21.331>that

744
00:38:21.715 --> 00:38:23.835
<00:38:21.715>whenever <00:38:21.915>somebody <00:38:22.115>finds <00:38:22.315>a <00:38:22.515>piece <00:38:22.715>of <00:38:22.915>technical <00:38:23.115>debt,

745
00:38:23.905 --> 00:38:26.595
<00:38:23.905>it's <00:38:24.060>necessary <00:38:24.216>to <00:38:24.371>be <00:38:24.527>solid, <00:38:24.682>but <00:38:24.838>it's <00:38:24.993>not <00:38:25.149>really <00:38:25.305>true

746
00:38:26.595 --> 00:38:28.875
<00:38:26.595>because <00:38:26.828>not <00:38:27.061>all <00:38:27.294>technical <00:38:27.528>debt <00:38:27.761>is <00:38:27.995>equal.

747
00:38:29.095 --> 00:38:31.915
<00:38:29.095>So <00:38:29.328>some <00:38:29.561>is <00:38:29.794>generating <00:38:30.028>high <00:38:30.261>interest <00:38:30.495>rate

748
00:38:32.415 --> 00:38:34.475
<00:38:32.415>and <00:38:32.765>other <00:38:33.115>is <00:38:33.465>rarely <00:38:33.815>touched

749
00:38:34.615 --> 00:38:36.725
<00:38:34.615>and <00:38:34.848>works <00:38:35.081>fine, <00:38:35.314>so <00:38:35.548>it <00:38:35.781>doesn't <00:38:36.015>generate

750
00:38:37.065 --> 00:38:38.085
<00:38:37.065>so <00:38:37.294>much <00:38:37.524>of <00:38:37.753>a <00:38:37.983>headache.

751
00:38:39.185 --> 00:38:44.145
<00:38:39.185>So <00:38:39.384>with <00:38:39.585>this, <00:38:39.785>we <00:38:39.985>come <00:38:40.185>basically <00:38:40.384>to <00:38:40.585>yeah,

752
00:38:45.185 --> 00:38:46.385
<00:38:45.185>a <00:38:45.545>set <00:38:45.905>of <00:38:46.265>rules

753
00:38:46.385 --> 00:38:49.545
<00:38:46.385>and <00:38:46.560>guidelines, <00:38:46.735>how <00:38:46.910>to <00:38:47.085>approach <00:38:47.260>this <00:38:47.435>technical <00:38:47.610>de <00:38:47.785>dilemma.

754
00:38:49.645 --> 00:38:51.945
<00:38:49.645>So <00:38:49.820>first <00:38:49.995>of <00:38:50.170>all, <00:38:50.345>we <00:38:50.520>need <00:38:50.695>this <00:38:50.870>common <00:38:51.045>understanding

755
00:38:52.005 --> 00:38:54.705
<00:38:52.005>of <00:38:52.205>the <00:38:52.405>di <00:38:52.605>desired <00:38:52.805>state <00:38:53.005>for <00:38:53.205>all <00:38:53.405>engineers.

756
00:38:55.085 --> 00:38:59.265
<00:38:55.085>So <00:38:55.240>we <00:38:55.396>need <00:38:55.551>kind <00:38:55.707>of <00:38:55.862>blueprints <00:38:56.018>in-house <00:38:56.173>design <00:38:56.329>patterns, <00:38:56.485>kind

757
00:38:59.265 --> 00:39:01.665
<00:38:59.265>of <00:38:59.464>codex <00:38:59.665>how, <00:38:59.865>how <00:39:00.065>things <00:39:00.265>should <00:39:00.464>be <00:39:00.665>done.

758
00:39:02.015 --> 00:39:06.365
<00:39:02.015>Some <00:39:02.190>criteria <00:39:02.365>we <00:39:02.540>need <00:39:02.714>to <00:39:02.890>apply <00:39:03.065>the <00:39:03.240>scout <00:39:03.415>tool.

759
00:39:06.395 --> 00:39:10.205
<00:39:06.395>Basically <00:39:06.595>whenever <00:39:06.795>you <00:39:06.995>find <00:39:07.195>something, <00:39:07.395>it's <00:39:07.595>in <00:39:07.795>German.

760
00:39:10.755 --> 00:39:12.845
<00:39:10.755>When <00:39:11.035>you <00:39:11.315>find <00:39:11.595>something <00:39:11.875>which <00:39:12.155>sort

761
00:39:12.845 --> 00:39:15.645
<00:39:12.845>of <00:39:13.000>deviates <00:39:13.156>from <00:39:13.311>your <00:39:13.467>ideal <00:39:13.622>state, <00:39:13.778>which <00:39:13.933>is <00:39:14.089>now <00:39:14.245>defined

762
00:39:15.645 --> 00:39:16.645
<00:39:15.645>as <00:39:16.095>the <00:39:16.545>blueprints

763
00:39:16.645 --> 00:39:20.085
<00:39:16.645>and <00:39:16.845>based <00:39:17.045>on <00:39:17.245>the <00:39:17.445>criteria, <00:39:17.645>you <00:39:17.845>improve <00:39:18.045>it

764
00:39:20.605 --> 00:39:23.285
<00:39:20.605>a <00:39:20.760>bit <00:39:20.916>in <00:39:21.071>that <00:39:21.227>direction <00:39:21.382>while <00:39:21.538>you're <00:39:21.693>working <00:39:21.849>on <00:39:22.005>your

765
00:39:23.425 --> 00:39:26.765
<00:39:23.425>of <00:39:23.580>feature, <00:39:23.736>on <00:39:23.891>your <00:39:24.047>next <00:39:24.202>step, <00:39:24.358>you're <00:39:24.513>going, <00:39:24.669>and <00:39:24.825>last

766
00:39:26.765 --> 00:39:30.505
<00:39:26.765>but <00:39:27.231>not <00:39:27.698>least, <00:39:28.165>we

767
00:39:30.505 --> 00:39:32.465
<00:39:30.505>follow <00:39:30.855>the <00:39:31.205>strangler <00:39:31.555>fe <00:39:31.905>pattern.

768
00:39:32.525 --> 00:39:33.745
<00:39:32.525>So <00:39:32.799>you're <00:39:33.074>not <00:39:33.348>doing <00:39:33.623>everything,

769
00:39:34.245 --> 00:39:37.745
<00:39:34.245>but <00:39:34.372>you <00:39:34.499>pick <00:39:34.626>out <00:39:34.754>the <00:39:34.881>parts <00:39:35.008>you <00:39:35.135>are <00:39:35.263>working <00:39:35.390>on <00:39:35.517>anyway <00:39:35.645>ways,

770
00:39:37.925 --> 00:39:40.865
<00:39:37.925>and <00:39:38.052>then <00:39:38.179>you <00:39:38.306>drag <00:39:38.434>them <00:39:38.561>out <00:39:38.688>of <00:39:38.815>your <00:39:38.943>big <00:39:39.070>bowl <00:39:39.197>of <00:39:39.325>mud

771
00:39:40.925 --> 00:39:43.745
<00:39:40.925>and <00:39:41.065>you <00:39:41.205>rebuild <00:39:41.345>them <00:39:41.485>as <00:39:41.625>a <00:39:41.765>separate <00:39:41.905>part <00:39:42.045>of <00:39:42.185>your <00:39:42.325>system.

772
00:39:44.365 --> 00:39:47.385
<00:39:44.365>And <00:39:44.520>the <00:39:44.676>term <00:39:44.831>strangler <00:39:44.987>fe <00:39:45.142>comes <00:39:45.298>from <00:39:45.453>an <00:39:45.609>Australian <00:39:45.765>plant,

773
00:39:47.635 --> 00:39:50.345
<00:39:47.635>which <00:39:47.915>basically <00:39:48.195>grows <00:39:48.475>among <00:39:48.755>the <00:39:49.035>trees

774
00:39:50.365 --> 00:39:51.705
<00:39:50.365>to <00:39:50.666>reach <00:39:50.968>the <00:39:51.269>light <00:39:51.571>faster.

775
00:39:51.965 --> 00:39:54.745
<00:39:51.965>And <00:39:52.092>it <00:39:52.219>covers <00:39:52.346>the, <00:39:52.474>at <00:39:52.601>some <00:39:52.728>point <00:39:52.855>it <00:39:52.983>really <00:39:53.110>covers <00:39:53.237>the <00:39:53.365>tree

776
00:39:54.805 --> 00:39:56.625
<00:39:54.805>and <00:39:55.085>strangles <00:39:55.365>it <00:39:55.645>until <00:39:55.924>it <00:39:56.205>dies.

777
00:39:56.645 --> 00:39:59.475
<00:39:56.645>So <00:39:56.995>that's <00:39:57.345>the <00:39:57.695>idea <00:39:58.045>here.

778
00:39:59.575 --> 00:40:02.155
<00:39:59.575>So <00:39:59.702>you <00:39:59.829>know, <00:39:59.956>more <00:40:00.084>and <00:40:00.211>more <00:40:00.338>parts <00:40:00.465>of <00:40:00.593>the <00:40:00.720>system <00:40:00.847>will <00:40:00.975>be

779
00:40:03.015 --> 00:40:04.695
<00:40:03.015>rejuvenated <00:40:03.295>and <00:40:03.575>at <00:40:03.855>some <00:40:04.134>point <00:40:04.415>the,

780
00:40:04.715 --> 00:40:07.415
<00:40:04.715>the <00:40:04.915>odd <00:40:05.115>system <00:40:05.315>is <00:40:05.515>not <00:40:05.715>needed <00:40:05.915>any <00:40:06.115>anymore.

781
00:40:07.555 --> 00:40:10.375
<00:40:07.555>So, <00:40:07.730>so <00:40:07.904>much <00:40:08.080>in <00:40:08.254>theory. <00:40:08.430>So <00:40:08.605>sounds <00:40:08.779>are <00:40:08.955>good.

782
00:40:11.355 --> 00:40:15.135
<00:40:11.355>Now <00:40:11.471>what, <00:40:11.588>so <00:40:11.705>we <00:40:11.821>want <00:40:11.938>to <00:40:12.055>keep <00:40:12.171>the <00:40:12.288>benefits <00:40:12.405>of <00:40:12.521>what <00:40:12.638>we <00:40:12.755>have,

783
00:40:15.135 --> 00:40:16.935
<00:40:15.135>the <00:40:15.485>simple <00:40:15.835>deployment, <00:40:16.185>simple <00:40:16.535>operation,

784
00:40:17.595 --> 00:40:20.095
<00:40:17.595>and <00:40:17.875>uh, <00:40:18.154>also <00:40:18.435>the <00:40:18.714>cost <00:40:18.995>efficiency.

785
00:40:20.795 --> 00:40:24.615
<00:40:20.795>But <00:40:20.995>we <00:40:21.195>also <00:40:21.395>want <00:40:21.595>to <00:40:21.795>increase <00:40:21.995>the <00:40:22.195>understandability,

786
00:40:24.715 --> 00:40:28.175
<00:40:24.715>reduce <00:40:24.915>cove <00:40:25.115>loads, <00:40:25.315>create <00:40:25.515>a <00:40:25.715>bit <00:40:25.915>more <00:40:26.115>flexibility.

787
00:40:28.995 --> 00:40:31.455
<00:40:28.995>And <00:40:29.228>our <00:40:29.461>approach <00:40:29.694>there <00:40:29.928>is <00:40:30.161>modular <00:40:30.395>lift.

788
00:40:31.675 --> 00:40:35.335
<00:40:31.675>So <00:40:31.850>first <00:40:32.025>thing <00:40:32.200>that <00:40:32.375>we <00:40:32.550>need <00:40:32.725>to <00:40:32.900>do <00:40:33.075>to,

789
00:40:36.625 --> 00:40:40.645
<00:40:36.625>to <00:40:36.905>get <00:40:37.185>there <00:40:37.465>is <00:40:37.745>we <00:40:38.025>need

790
00:40:40.645 --> 00:40:44.365
<00:40:40.645>to <00:40:40.845>structure <00:40:41.045>it <00:40:41.245>according <00:40:41.445>to <00:40:41.645>domain <00:40:41.845>driven <00:40:42.045>design.

791
00:40:44.425 --> 00:40:45.925
<00:40:44.425>So <00:40:44.695>that's <00:40:44.965>the <00:40:45.235>approach <00:40:45.505>we <00:40:45.775>chose

792
00:40:45.925 --> 00:40:47.885
<00:40:45.925>because <00:40:46.158>domain <00:40:46.391>driven <00:40:46.625>design <00:40:46.858>really <00:40:47.091>helps <00:40:47.325>us

793
00:40:47.885 --> 00:40:51.925
<00:40:47.885>to <00:40:48.040>identify <00:40:48.196>the, <00:40:48.351>yeah, <00:40:48.507>sub-domains, <00:40:48.662>the <00:40:48.818>parts <00:40:48.973>of <00:40:49.129>the <00:40:49.285>system

794
00:40:52.115 --> 00:40:56.365
<00:40:52.115>that <00:40:52.270>are, <00:40:52.426>have <00:40:52.581>a <00:40:52.737>loose <00:40:52.892>coupling <00:40:53.048>and <00:40:53.203>a <00:40:53.359>high <00:40:53.515>cohesion.

795
00:40:56.945 --> 00:41:00.485
<00:40:56.945>And <00:40:57.100>also <00:40:57.256>help <00:40:57.411>us <00:40:57.567>to <00:40:57.722>work <00:40:57.878>on <00:40:58.033>the <00:40:58.189>organizational <00:40:58.345>structure.

796
00:41:00.505 --> 00:41:03.325
<00:41:00.505>So <00:41:00.660>you, <00:41:00.816>this <00:41:00.971>sub-domains <00:41:01.127>can <00:41:01.282>be <00:41:01.438>owned <00:41:01.593>by <00:41:01.749>a <00:41:01.905>team

797
00:41:03.905 --> 00:41:07.365
<00:41:03.905>and <00:41:04.045>the <00:41:04.185>teams <00:41:04.325>fully <00:41:04.465>responsible <00:41:04.605>for <00:41:04.745>that <00:41:04.885>part <00:41:05.025>of <00:41:05.165>the <00:41:05.305>system.

798
00:41:09.935 --> 00:41:13.235
<00:41:09.935>So <00:41:10.062>we <00:41:10.189>have <00:41:10.316>to <00:41:10.444>look <00:41:10.571>into <00:41:10.698>the <00:41:10.825>domain <00:41:10.953>architecture, <00:41:11.080>we <00:41:11.207>have <00:41:11.335>to

799
00:41:14.655 --> 00:41:16.475
<00:41:14.655>go <00:41:14.935>and <00:41:15.215>define <00:41:15.495>good <00:41:15.775>coding <00:41:16.055>rules.

800
00:41:16.535 --> 00:41:17.595
<00:41:16.535>We <00:41:16.853>need <00:41:17.171>good <00:41:17.488>conventions

801
00:41:17.615 --> 00:41:19.955
<00:41:17.615>and <00:41:17.770>guidelines <00:41:17.926>for <00:41:18.081>the <00:41:18.237>sub-domains, <00:41:18.392>how <00:41:18.548>to <00:41:18.703>set <00:41:18.859>them <00:41:19.015>up,

802
00:41:20.175 --> 00:41:25.075
<00:41:20.175>how <00:41:20.350>do <00:41:20.525>they <00:41:20.700>communicate, <00:41:20.875>um, <00:41:21.050>how <00:41:21.225>are <00:41:21.400>this, <00:41:21.575>yeah,

803
00:41:25.095 --> 00:41:27.955
<00:41:25.095>how, <00:41:25.234>how <00:41:25.375>do <00:41:25.515>we <00:41:25.654>want <00:41:25.794>our <00:41:25.935>system <00:41:26.075>to <00:41:26.214>look <00:41:26.355>like <00:41:26.495>afterwards?

804
00:41:28.815 --> 00:41:30.955
<00:41:28.815>And, <00:41:29.015>and <00:41:29.215>on <00:41:29.415>the <00:41:29.615>whole <00:41:29.815>setup, <00:41:30.015>we <00:41:30.215>need

805
00:41:30.955 --> 00:41:32.275
<00:41:30.955>to <00:41:31.192>follow <00:41:31.430>the <00:41:31.667>strength <00:41:31.905>of <00:41:32.143>pattern.

806
00:41:32.455 --> 00:41:34.165
<00:41:32.455>So <00:41:33.154>we <00:41:33.855>need,

807
00:41:35.265 --> 00:41:38.745
<00:41:35.265>whenever <00:41:35.440>we <00:41:35.615>touch <00:41:35.790>something, <00:41:35.964>we <00:41:36.140>can <00:41:36.315>look <00:41:36.490>at <00:41:36.665>it

808
00:41:38.745 --> 00:41:42.465
<00:41:38.745>and <00:41:38.872>we <00:41:38.999>can <00:41:39.126>say, <00:41:39.254>okay, <00:41:39.381>this <00:41:39.508>is <00:41:39.635>a <00:41:39.763>sub <00:41:39.890>domain <00:41:40.017>that's <00:41:40.145>migrated

809
00:41:43.385 --> 00:41:44.925
<00:41:43.385>to <00:41:43.731>the <00:41:44.078>new, <00:41:44.424>new <00:41:44.771>structure.

810
00:41:46.085 --> 00:41:48.825
<00:41:46.085>Do <00:41:46.212>that. <00:41:46.339>And <00:41:46.466>also, <00:41:46.594>if <00:41:46.721>it's <00:41:46.848>a <00:41:46.975>sub <00:41:47.103>domain, <00:41:47.230>we <00:41:47.357>say, <00:41:47.485>okay,

811
00:41:48.825 --> 00:41:50.585
<00:41:48.825>we <00:41:49.105>probably <00:41:49.384>shouldn't <00:41:49.665>do <00:41:49.944>that <00:41:50.225>ourselves.

812
00:41:51.055 --> 00:41:55.535
<00:41:51.055>Find <00:41:51.335>a <00:41:51.615>solution, <00:41:51.895>um, <00:41:52.174>for <00:41:52.455>generics.

813
00:41:55.765 --> 00:41:58.295
<00:41:55.765>Yeah, <00:41:55.964>for <00:41:56.165>which <00:41:56.365>is <00:41:56.565>of, <00:41:56.765>of <00:41:56.964>the <00:41:57.165>shelf,

814
00:41:58.295 --> 00:41:59.735
<00:41:58.295>which <00:41:58.511>is <00:41:58.727>already <00:41:58.943>there <00:41:59.159>on <00:41:59.375>the <00:41:59.591>market.

815
00:42:02.235 --> 00:42:04.735
<00:42:02.235>So <00:42:02.410>domain <00:42:02.585>architecture, <00:42:02.760>I <00:42:02.935>don't <00:42:03.110>want <00:42:03.285>to <00:42:03.460>bother <00:42:03.635>you

816
00:42:04.735 --> 00:42:06.015
<00:42:04.735>with <00:42:05.023>all <00:42:05.311>the <00:42:05.599>details, <00:42:05.886>uh,

817
00:42:06.555 --> 00:42:08.775
<00:42:06.555>but <00:42:06.788>the <00:42:07.021>idea <00:42:07.254>here <00:42:07.488>is <00:42:07.721>the, <00:42:07.955>the,

818
00:42:08.835 --> 00:42:10.895
<00:42:08.835>the <00:42:09.185>green <00:42:09.535>PostIts <00:42:09.885>are <00:42:10.235>sub-domains.

819
00:42:11.035 --> 00:42:14.775
<00:42:11.035>The <00:42:11.315>orange <00:42:11.595>ones <00:42:11.875>are <00:42:12.154>domain <00:42:12.435>events.

820
00:42:15.715 --> 00:42:19.295
<00:42:15.715>And <00:42:15.915>the <00:42:16.115>black <00:42:16.315>boxes <00:42:16.515>here <00:42:16.715>are <00:42:16.915>actually <00:42:17.115>actually

821
00:42:19.295 --> 00:42:20.455
<00:42:19.295>organizational <00:42:20.339>boundaries.

822
00:42:21.565 --> 00:42:24.755
<00:42:21.565>Just <00:42:21.845>to <00:42:22.125>give <00:42:22.405>you <00:42:22.685>an <00:42:22.965>impression,

823
00:42:24.865 --> 00:42:27.675
<00:42:24.865>this <00:42:25.064>one <00:42:25.265>already <00:42:25.464>points <00:42:25.665>out <00:42:25.865>some, <00:42:26.064>some <00:42:26.265>problems,

824
00:42:27.675 --> 00:42:29.075
<00:42:27.675>but <00:42:27.990>they <00:42:28.305>are <00:42:28.620>actually <00:42:28.935>organizational.

825
00:42:29.335 --> 00:42:30.515
<00:42:29.335>So <00:42:29.600>this <00:42:29.866>is <00:42:30.131>very <00:42:30.397>interesting.

826
00:42:30.515 --> 00:42:33.155
<00:42:30.515>So <00:42:30.714>whenever <00:42:30.915>you <00:42:31.115>do <00:42:31.315>something <00:42:31.515>this <00:42:31.714>be <00:42:31.915>prepared

827
00:42:33.175 --> 00:42:36.235
<00:42:33.175>for <00:42:33.875>organizational <00:42:34.575>challenges.

828
00:42:36.375 --> 00:42:41.075
<00:42:36.375>So <00:42:36.608>we <00:42:36.841>have <00:42:37.075>here <00:42:37.308>obviously <00:42:37.541>one <00:42:37.775>part

829
00:42:41.075 --> 00:42:43.515
<00:42:41.075>of <00:42:41.230>the <00:42:41.386>process <00:42:41.541>with <00:42:41.697>a <00:42:41.852>couple <00:42:42.008>of <00:42:42.163>sub <00:42:42.319>domains <00:42:42.475>involved,

830
00:42:43.805 --> 00:42:46.995
<00:42:43.805>which <00:42:44.004>is <00:42:44.205>highly <00:42:44.404>coupled <00:42:44.605>to <00:42:44.805>a <00:42:45.004>process <00:42:45.205>on,

831
00:42:48.455 --> 00:42:51.995
<00:42:48.455>on <00:42:48.610>the <00:42:48.766>right <00:42:48.921>side, <00:42:49.077>which <00:42:49.232>actually <00:42:49.388>is <00:42:49.543>in <00:42:49.699>a <00:42:49.855>different

832
00:42:51.995 --> 00:42:53.115
<00:42:51.995>part <00:42:52.330>of <00:42:52.667>the <00:42:53.002>organization.

833
00:42:53.335 --> 00:42:54.755
<00:42:53.335>So <00:42:53.761>this <00:42:54.187>is <00:42:54.613>interesting.

834
00:42:55.375 --> 00:42:58.395
<00:42:55.375>We <00:42:55.608>also <00:42:55.841>have, <00:42:56.075>uh, <00:42:56.308>one <00:42:56.541>thing <00:42:56.775>here,

835
00:42:58.685 --> 00:43:00.995
<00:42:58.685>which <00:42:59.035>is <00:42:59.384>a <00:42:59.735>potential <00:43:00.085>sub-domain.

836
00:43:00.995 --> 00:43:03.515
<00:43:00.995>It's <00:43:01.150>not <00:43:01.306>all <00:43:01.461>clear <00:43:01.617>that <00:43:01.772>the <00:43:01.928>whole <00:43:02.083>big <00:43:02.239>green <00:43:02.395>box

837
00:43:03.975 --> 00:43:07.865
<00:43:03.975>and <00:43:04.174>that <00:43:04.375>one <00:43:04.575>nevertheless <00:43:04.775>would <00:43:04.975>be <00:43:05.174>also <00:43:05.375>distributed

838
00:43:08.275 --> 00:43:10.425
<00:43:08.275>among <00:43:08.625>two <00:43:08.975>organizational, <00:43:09.325>uh, <00:43:09.675>units.

839
00:43:10.925 --> 00:43:14.425
<00:43:10.925>So <00:43:11.158>we <00:43:11.391>already <00:43:11.625>identified <00:43:11.858>interesting <00:43:12.091>things <00:43:12.325>here

840
00:43:16.285 --> 00:43:19.505
<00:43:16.285>and <00:43:16.440>it <00:43:16.596>already <00:43:16.751>helps <00:43:16.907>us <00:43:17.062>to <00:43:17.218>understand <00:43:17.373>our <00:43:17.529>system <00:43:17.685>better,

841
00:43:19.645 --> 00:43:22.465
<00:43:19.645>but <00:43:19.845>now <00:43:20.045>we <00:43:20.245>have <00:43:20.445>to <00:43:20.645>think <00:43:20.845>about <00:43:21.045>like,

842
00:43:22.485 --> 00:43:24.625
<00:43:22.485>we <00:43:22.640>have <00:43:22.796>the <00:43:22.951>domains, <00:43:23.107>what <00:43:23.262>do <00:43:23.418>we <00:43:23.573>do <00:43:23.729>with <00:43:23.885>them?

843
00:43:24.645 --> 00:43:25.945
<00:43:24.645>So <00:43:24.879>how <00:43:25.113>do <00:43:25.347>we <00:43:25.581>implement <00:43:25.815>them?

844
00:43:26.005 --> 00:43:27.545
<00:43:26.005>So <00:43:26.203>we <00:43:26.401>still <00:43:26.599>want <00:43:26.797>to <00:43:26.995>keep <00:43:27.193>it <00:43:27.391>simple.

845
00:43:28.445 --> 00:43:33.065
<00:43:28.445>We <00:43:28.585>want <00:43:28.725>to <00:43:28.865>have <00:43:29.005>a <00:43:29.145>sort <00:43:29.285>of <00:43:29.425>approach <00:43:29.565>where <00:43:29.705>we <00:43:29.845>evolve

846
00:43:33.125 --> 00:43:34.585
<00:43:33.125>to <00:43:33.387>the <00:43:33.650>new <00:43:33.913>system <00:43:34.176>where <00:43:34.439>we

847
00:43:35.185 --> 00:43:38.785
<00:43:35.185>actually <00:43:35.418>can <00:43:35.651>keep <00:43:35.884>on <00:43:36.118>delivering <00:43:36.351>features <00:43:36.585>where,

848
00:43:39.685 --> 00:43:42.585
<00:43:39.685>and <00:43:39.884>where <00:43:40.085>actually <00:43:40.285>the, <00:43:40.485>the <00:43:40.685>structure <00:43:40.884>we <00:43:41.085>set

849
00:43:42.605 --> 00:43:47.545
<00:43:42.605>and <00:43:42.760>the <00:43:42.916>things <00:43:43.071>that <00:43:43.227>we <00:43:43.382>introduce <00:43:43.538>help <00:43:43.693>us <00:43:43.849>to, <00:43:44.005>um,

850
00:43:47.755 --> 00:43:50.825
<00:43:47.755>build <00:43:47.895>new <00:43:48.035>systems <00:43:48.175>and <00:43:48.315>not <00:43:48.455>really <00:43:48.595>stop <00:43:48.735>us <00:43:48.875>from <00:43:49.015>doing <00:43:49.155>that.

851
00:43:51.685 --> 00:43:55.585
<00:43:51.685>And <00:43:51.860>so <00:43:52.035>we <00:43:52.210>came <00:43:52.384>up <00:43:52.560>with <00:43:52.735>a <00:43:52.910>set <00:43:53.085>of

852
00:43:56.395 --> 00:43:57.505
<00:43:56.395>rules <00:43:56.894>and <00:43:57.394>guidelines.

853
00:43:57.665 --> 00:43:59.505
<00:43:57.665>I <00:43:57.840>don't <00:43:58.015>want <00:43:58.190>to <00:43:58.365>dig <00:43:58.540>into <00:43:58.715>all <00:43:58.890>the <00:43:59.065>details,

854
00:43:59.965 --> 00:44:02.745
<00:43:59.965>but <00:44:00.120>just <00:44:00.276>to <00:44:00.431>give <00:44:00.587>you <00:44:00.742>an <00:44:00.898>impression, <00:44:01.053>it's <00:44:01.209>very <00:44:01.365>simple.

855
00:44:02.775 --> 00:44:04.945
<00:44:02.775>It's <00:44:03.125>just <00:44:03.475>a <00:44:03.825>layered <00:44:04.175>architecture

856
00:44:06.905 --> 00:44:08.235
<00:44:06.905>with <00:44:07.104>all <00:44:07.304>the <00:44:07.503>layers <00:44:07.703>that <00:44:07.902>you <00:44:08.102>know.

857
00:44:08.235 --> 00:44:10.835
<00:44:08.235>So <00:44:08.390>you <00:44:08.546>have <00:44:08.701>a <00:44:08.857>presentation <00:44:09.012>layer, <00:44:09.168>uh, <00:44:09.323>you <00:44:09.479>have <00:44:09.635>a,

858
00:44:10.945 --> 00:44:12.395
<00:44:10.945>this <00:44:11.206>is <00:44:11.467>basically <00:44:11.728>the <00:44:11.989>controller <00:44:12.250>layer.

859
00:44:12.395 --> 00:44:16.725
<00:44:12.395>You <00:44:12.550>have <00:44:12.706>the <00:44:12.861>service <00:44:13.017>layer <00:44:13.172>and <00:44:13.328>a <00:44:13.483>repository <00:44:13.639>storage <00:44:13.795>layer,

860
00:44:17.465 --> 00:44:19.965
<00:44:17.465>but <00:44:17.640>you, <00:44:17.815>and <00:44:17.990>you've <00:44:18.165>got <00:44:18.340>the <00:44:18.515>access <00:44:18.690>roots <00:44:18.865>from

861
00:44:19.965 --> 00:44:23.365
<00:44:19.965>where <00:44:20.120>you <00:44:20.276>can <00:44:20.431>access <00:44:20.587>what <00:44:20.742>you've <00:44:20.898>got, <00:44:21.053>uh, <00:44:21.209>the <00:44:21.365>boundaries.

862
00:44:24.035 --> 00:44:28.085
<00:44:24.035>This <00:44:24.190>are, <00:44:24.346>you <00:44:24.501>could <00:44:24.657>say <00:44:24.812>it's <00:44:24.968>basically <00:44:25.123>the, <00:44:25.279>the <00:44:25.435>interfaces,

863
00:44:28.085 --> 00:44:29.805
<00:44:28.085>the <00:44:28.435>APIs <00:44:28.785>between <00:44:29.135>the <00:44:29.485>sub-domains.

864
00:44:30.505 --> 00:44:34.165
<00:44:30.505>And <00:44:30.632>uh, <00:44:30.759>you <00:44:30.886>have <00:44:31.014>roots <00:44:31.141>for <00:44:31.268>what <00:44:31.395>can <00:44:31.523>be <00:44:31.650>accessed <00:44:31.777>from <00:44:31.905>where.

865
00:44:36.325 --> 00:44:38.985
<00:44:36.325>So <00:44:36.480>this <00:44:36.636>is <00:44:36.791>on <00:44:36.947>a, <00:44:37.102>on <00:44:37.258>a <00:44:37.413>very <00:44:37.569>high <00:44:37.725>level.

866
00:44:39.685 --> 00:44:43.925
<00:44:39.685>And <00:44:39.918>now <00:44:40.151>the <00:44:40.384>question <00:44:40.618>is <00:44:40.851>if <00:44:41.085>you,

867
00:44:43.985 --> 00:44:47.045
<00:44:43.985>if <00:44:44.185>you <00:44:44.385>have <00:44:44.585>such, <00:44:44.785>such <00:44:44.985>roots <00:44:45.185>and <00:44:45.385>guidelines.

868
00:44:47.045 --> 00:44:48.805
<00:44:47.045>So <00:44:47.245>you've <00:44:47.445>got <00:44:47.645>the <00:44:47.845>access <00:44:48.045>roots, <00:44:48.245>you've <00:44:48.445>got

869
00:44:49.325 --> 00:44:52.085
<00:44:49.325>probably <00:44:49.500>some <00:44:49.674>coding <00:44:49.850>conventions, <00:44:50.024>how <00:44:50.200>things <00:44:50.375>are <00:44:50.549>named, <00:44:50.725>how,

870
00:44:52.585 --> 00:44:55.125
<00:44:52.585>how <00:44:52.740>things <00:44:52.896>should <00:44:53.051>be <00:44:53.207>structured, <00:44:53.362>which <00:44:53.518>code <00:44:53.673>should <00:44:53.829>go <00:44:53.985>where,

871
00:44:56.455 --> 00:44:59.355
<00:44:56.455>how, <00:44:56.610>how <00:44:56.766>come <00:44:56.921>do <00:44:57.077>you <00:44:57.232>come <00:44:57.388>to, <00:44:57.543>to <00:44:57.699>such <00:44:57.855>guidelines,

872
00:44:59.495 --> 00:45:01.555
<00:44:59.495>how <00:44:59.775>an <00:45:00.055>API <00:45:00.335>should <00:45:00.615>be <00:45:00.895>designed?

873
00:45:03.675 --> 00:45:05.465
<00:45:03.675>Where <00:45:04.025>does <00:45:04.375>what <00:45:04.725>data <00:45:05.075>go?

874
00:45:05.565 --> 00:45:08.865
<00:45:05.565>Um, <00:45:05.720>how <00:45:05.876>does, <00:45:06.031>does <00:45:06.187>is <00:45:06.342>are <00:45:06.498>there <00:45:06.653>entity <00:45:06.809>structured, <00:45:06.965>whatever,

875
00:45:09.645 --> 00:45:12.665
<00:45:09.645>um, <00:45:09.925>how <00:45:10.205>do <00:45:10.485>you <00:45:10.765>define <00:45:11.045>them?

876
00:45:12.765 --> 00:45:15.105
<00:45:12.765>How <00:45:12.998>do <00:45:13.231>you <00:45:13.464>get <00:45:13.698>to <00:45:13.931>these <00:45:14.165>solutions?

877
00:45:15.205 --> 00:45:19.745
<00:45:15.205>And <00:45:15.321>well, <00:45:15.438>it's <00:45:15.555>very <00:45:15.671>easy <00:45:15.788>to <00:45:15.904>say <00:45:16.021>like <00:45:16.138>how <00:45:16.255>not <00:45:16.371>to <00:45:16.488>define <00:45:16.605>them.

878
00:45:20.005 --> 00:45:23.705
<00:45:20.005>So <00:45:20.145>one <00:45:20.285>person <00:45:20.425>defines <00:45:20.565>all <00:45:20.705>the <00:45:20.845>rules <00:45:20.985>and <00:45:21.125>they're <00:45:21.265>set <00:45:21.405>forever

879
00:45:23.925 --> 00:45:25.745
<00:45:23.925>and <00:45:24.100>must <00:45:24.275>be <00:45:24.450>followed <00:45:24.625>by <00:45:24.800>everyone <00:45:24.975>in <00:45:25.150>all <00:45:25.325>cases.

880
00:45:25.925 --> 00:45:27.185
<00:45:25.925>So <00:45:26.151>that's <00:45:26.378>a <00:45:26.605>very <00:45:26.832>bad <00:45:27.059>idea.

881
00:45:27.565 --> 00:45:29.625
<00:45:27.565>So <00:45:27.798>from <00:45:28.031>there <00:45:28.265>we <00:45:28.498>can <00:45:28.731>probably <00:45:28.965>derive

882
00:45:29.975 --> 00:45:31.185
<00:45:29.975>what <00:45:30.192>would <00:45:30.410>be <00:45:30.628>a <00:45:30.846>good <00:45:31.064>idea.

883
00:45:31.485 --> 00:45:34.105
<00:45:31.485>So <00:45:31.718>it <00:45:31.951>should <00:45:32.185>be <00:45:32.418>a <00:45:32.651>collaborative <00:45:32.885>effort.

884
00:45:34.165 --> 00:45:35.905
<00:45:34.165>So <00:45:34.445>people <00:45:34.725>should <00:45:35.005>do <00:45:35.285>that <00:45:35.565>together.

885
00:45:36.165 --> 00:45:37.385
<00:45:36.165>We <00:45:36.439>need <00:45:36.714>to <00:45:36.988>discuss <00:45:37.263>things.

886
00:45:37.405 --> 00:45:40.185
<00:45:37.405>We <00:45:37.580>need <00:45:37.755>to <00:45:37.930>dis <00:45:38.105>uh, <00:45:38.280>come <00:45:38.455>to <00:45:38.630>a <00:45:38.805>point

887
00:45:40.185 --> 00:45:42.705
<00:45:40.185>where <00:45:40.360>we <00:45:40.535>really <00:45:40.710>understand <00:45:40.884>what <00:45:41.060>does <00:45:41.235>good <00:45:41.410>code <00:45:41.585>mean

888
00:45:42.805 --> 00:45:44.585
<00:45:42.805>for <00:45:43.154>us <00:45:43.504>as <00:45:43.855>a <00:45:44.205>team.

889
00:45:45.245 --> 00:45:49.475
<00:45:45.245>We <00:45:45.478>need, <00:45:45.711>um, <00:45:45.944>which <00:45:46.178>helps <00:45:46.411>us <00:45:46.645>then

890
00:45:49.475 --> 00:45:51.115
<00:45:49.475>to <00:45:49.941>formulate <00:45:50.408>the <00:45:50.875>criteria.

891
00:45:52.135 --> 00:45:54.835
<00:45:52.135>And <00:45:52.368>we <00:45:52.601>also, <00:45:52.835>um, <00:45:53.068>must <00:45:53.301>be <00:45:53.535>sure

892
00:45:54.835 --> 00:45:56.555
<00:45:54.835>that <00:45:55.068>they <00:45:55.301>are <00:45:55.535>not <00:45:55.768>cast <00:45:56.001>in <00:45:56.235>stones.

893
00:45:56.555 --> 00:45:58.195
<00:45:56.555>So <00:45:56.835>they <00:45:57.115>must <00:45:57.395>be <00:45:57.674>improved <00:45:57.955>continuously

894
00:45:58.385 --> 00:46:01.115
<00:45:58.385>with <00:45:58.560>feedback <00:45:58.735>from <00:45:58.910>the <00:45:59.085>teams, <00:45:59.260>from <00:45:59.435>everyone <00:45:59.610>so <00:45:59.785>that

895
00:46:01.855 --> 00:46:05.475
<00:46:01.855>we <00:46:02.010>don't <00:46:02.166>end <00:46:02.321>up <00:46:02.477>with <00:46:02.632>something <00:46:02.788>that <00:46:02.943>really <00:46:03.099>blocks <00:46:03.255>us

896
00:46:05.615 --> 00:46:10.155
<00:46:05.615>and <00:46:05.770>feels <00:46:05.926>like, <00:46:06.081>uh, <00:46:06.237>something <00:46:06.392>that <00:46:06.548>makes <00:46:06.703>us <00:46:06.859>un <00:46:07.015>unflexible

897
00:46:10.335 --> 00:46:13.635
<00:46:10.335>and <00:46:10.475>doesn't <00:46:10.615>help <00:46:10.755>us <00:46:10.895>to, <00:46:11.035>to <00:46:11.175>really <00:46:11.315>code <00:46:11.455>and <00:46:11.595>move <00:46:11.735>forward.

898
00:46:14.665 --> 00:46:17.795
<00:46:14.665>Next <00:46:14.805>question <00:46:14.945>that <00:46:15.085>we <00:46:15.225>are <00:46:15.365>facing <00:46:15.505>is <00:46:15.645>then, <00:46:15.785>okay, <00:46:15.925>now <00:46:16.065>assume

899
00:46:17.795 --> 00:46:19.755
<00:46:17.795>that <00:46:17.995>you <00:46:18.195>have <00:46:18.395>your <00:46:18.595>rules <00:46:18.795>and <00:46:18.995>guidelines, <00:46:19.195>how

900
00:46:19.755 --> 00:46:24.495
<00:46:19.755>to <00:46:19.930>make <00:46:20.105>them <00:46:20.280>stick <00:46:20.455>because <00:46:20.630>people <00:46:20.805>forget <00:46:20.980>the <00:46:21.155>rules.

901
00:46:25.305 --> 00:46:27.215
<00:46:25.305>There <00:46:25.460>are <00:46:25.616>new <00:46:25.771>people <00:46:25.927>coming <00:46:26.082>who <00:46:26.238>don't <00:46:26.393>know <00:46:26.549>the <00:46:26.705>rules.

902
00:46:27.355 --> 00:46:28.615
<00:46:27.355>If <00:46:27.922>there's <00:46:28.488>documentation

903
00:46:28.795 --> 00:46:30.335
<00:46:28.795>and <00:46:29.141>everything's <00:46:29.488>described, <00:46:29.834>that's <00:46:30.181>good.

904
00:46:30.605 --> 00:46:34.015
<00:46:30.605>It's <00:46:30.780>a <00:46:30.955>big <00:46:31.130>progress <00:46:31.305>already, <00:46:31.480>but <00:46:31.655>documentation <00:46:31.830>is <00:46:32.005>boring.

905
00:46:34.035 --> 00:46:36.855
<00:46:34.035>You <00:46:34.174>probably <00:46:34.315>read <00:46:34.455>it <00:46:34.595>and <00:46:34.734>in <00:46:34.875>the <00:46:35.015>moment <00:46:35.154>it <00:46:35.295>doesn't <00:46:35.435>really

906
00:46:36.855 --> 00:46:39.535
<00:46:36.855>affect <00:46:37.030>you, <00:46:37.205>so <00:46:37.380>you <00:46:37.555>tend <00:46:37.730>to <00:46:37.905>forget <00:46:38.080>it <00:46:38.255>again.

907
00:46:40.115 --> 00:46:42.255
<00:46:40.115>So, <00:46:40.348>and <00:46:40.581>probably <00:46:40.814>there <00:46:41.048>are <00:46:41.281>also <00:46:41.515>situation

908
00:46:42.255 --> 00:46:45.615
<00:46:42.255>where <00:46:42.395>it's <00:46:42.535>just <00:46:42.675>easier <00:46:42.815>to, <00:46:42.955>to <00:46:43.095>use <00:46:43.235>the <00:46:43.375>short <00:46:43.515>cuts <00:46:43.655>shortcuts.

909
00:46:45.635 --> 00:46:48.975
<00:46:45.635>So <00:46:45.810>we <00:46:45.985>need <00:46:46.160>some <00:46:46.335>means <00:46:46.510>to <00:46:46.685>make <00:46:46.860>them <00:46:47.035>stick

910
00:46:49.955 --> 00:46:54.645
<00:46:49.955>and <00:46:50.154>we <00:46:50.355>chose <00:46:50.555>actually <00:46:50.755>our <00:46:50.955>unit <00:46:51.154>for <00:46:51.355>it

911
00:46:54.865 --> 00:46:58.085
<00:46:54.865>and <00:46:55.098>it <00:46:55.331>helps <00:46:55.564>us <00:46:55.798>to <00:46:56.031>really <00:46:56.265>implement

912
00:46:58.425 --> 00:47:01.005
<00:46:58.425>and <00:46:58.705>specify <00:46:58.985>the <00:46:59.265>rules <00:46:59.545>in <00:46:59.825>Java

913
00:47:03.005 --> 00:47:04.945
<00:47:03.005>and <00:47:03.205>run <00:47:03.405>them <00:47:03.605>together <00:47:03.805>with <00:47:04.005>our <00:47:04.205>unit <00:47:04.405>tests.

914
00:47:05.685 --> 00:47:08.745
<00:47:05.685>And <00:47:05.884>the <00:47:06.085>big <00:47:06.285>advantage <00:47:06.485>is <00:47:06.685>it <00:47:06.884>allows <00:47:07.085>us

915
00:47:08.765 --> 00:47:10.505
<00:47:08.765>to <00:47:09.231>freeze <00:47:09.698>existing <00:47:10.165>violations

916
00:47:10.925 --> 00:47:12.665
<00:47:10.925>and <00:47:11.158>just <00:47:11.391>fix <00:47:11.625>them <00:47:11.858>step <00:47:12.091>by <00:47:12.325>step.

917
00:47:12.725 --> 00:47:16.145
<00:47:12.725>So <00:47:12.852>you <00:47:12.979>can <00:47:13.106>take <00:47:13.234>a <00:47:13.361>part <00:47:13.488>of <00:47:13.615>the <00:47:13.743>system, <00:47:13.870>you <00:47:13.997>say, <00:47:14.125>okay,

918
00:47:16.145 --> 00:47:17.625
<00:47:16.145>this <00:47:16.478>is <00:47:16.811>a <00:47:17.144>new <00:47:17.477>sub-domain.

919
00:47:17.625 --> 00:47:20.145
<00:47:17.625>You <00:47:17.800>move <00:47:17.975>your <00:47:18.150>stuff, <00:47:18.325>there's <00:47:18.500>still <00:47:18.675>violations, <00:47:18.850>that's <00:47:19.025>fine.

920
00:47:20.615 --> 00:47:23.345
<00:47:20.615>Then <00:47:20.742>you <00:47:20.869>can <00:47:20.996>reduce <00:47:21.124>them, <00:47:21.251>you <00:47:21.378>can <00:47:21.505>be <00:47:21.633>built <00:47:21.760>a <00:47:21.887>new <00:47:22.015>code

921
00:47:23.565 --> 00:47:24.785
<00:47:23.565>and <00:47:23.931>eventually <00:47:24.297>you're <00:47:24.663>able

922
00:47:24.845 --> 00:47:27.505
<00:47:24.845>to <00:47:25.125>extract <00:47:25.404>a <00:47:25.685>complete <00:47:25.964>independent <00:47:26.245>module.

923
00:47:28.005 --> 00:47:30.765
<00:47:28.005>And <00:47:28.180>the <00:47:28.355>good, <00:47:28.530>uh, <00:47:28.705>another <00:47:28.880>important <00:47:29.055>thing <00:47:29.230>is <00:47:29.405>that

924
00:47:31.325 --> 00:47:35.685
<00:47:31.325>whenever <00:47:31.500>um, <00:47:31.674>the <00:47:31.850>rule <00:47:32.024>is <00:47:32.200>violated, <00:47:32.375>it <00:47:32.549>makes <00:47:32.725>sense

925
00:47:35.945 --> 00:47:39.685
<00:47:35.945>to <00:47:36.120>point <00:47:36.295>to <00:47:36.470>the <00:47:36.645>documentation <00:47:36.820>where <00:47:36.995>everything <00:47:37.170>is <00:47:37.345>explained.

926
00:47:39.745 --> 00:47:41.125
<00:47:39.745>So <00:47:39.952>why <00:47:40.159>do <00:47:40.366>we <00:47:40.573>have <00:47:40.779>this <00:47:40.987>rule?

927
00:47:41.825 --> 00:47:42.925
<00:47:41.825>How <00:47:42.072>should <00:47:42.320>it <00:47:42.567>be <00:47:42.815>structured

928
00:47:43.505 --> 00:47:46.965
<00:47:43.505>and <00:47:43.660>how <00:47:43.816>do <00:47:43.971>you, <00:47:44.127>do <00:47:44.282>you <00:47:44.438>get, <00:47:44.593>do <00:47:44.749>you <00:47:44.905>get

929
00:47:47.125 --> 00:47:48.525
<00:47:47.125>to <00:47:47.440>a <00:47:47.755>nice <00:47:48.070>setup <00:47:48.385>here?

930
00:47:50.065 --> 00:47:53.185
<00:47:50.065>So <00:47:51.465>last

931
00:47:53.185 --> 00:47:55.185
<00:47:53.185>but <00:47:53.384>not <00:47:53.585>least, <00:47:53.785>follow <00:47:53.985>the <00:47:54.185>strangler <00:47:54.384>feed <00:47:54.585>pattern.

932
00:47:55.445 --> 00:47:59.505
<00:47:55.445>So, <00:47:55.645>um, <00:47:55.845>my <00:47:56.045>great <00:47:56.245>code <00:47:56.445>of <00:47:56.645>a <00:47:56.845>subdomain,

933
00:47:59.705 --> 00:48:01.705
<00:47:59.705>whenever <00:47:59.880>you're <00:48:00.055>working <00:48:00.230>on <00:48:00.404>it, <00:48:00.580>find <00:48:00.755>off <00:48:00.930>the <00:48:01.105>shelf

934
00:48:01.705 --> 00:48:03.025
<00:48:01.705>command <00:48:02.101>for <00:48:02.497>generic <00:48:02.893>domains.

935
00:48:03.025 --> 00:48:04.385
<00:48:03.025>We <00:48:03.229>talked <00:48:03.433>about <00:48:03.637>that <00:48:03.841>and <00:48:04.045>that's <00:48:04.249>actually

936
00:48:04.965 --> 00:48:06.105
<00:48:04.965>how <00:48:05.307>we <00:48:05.649>approach <00:48:05.991>this.

937
00:48:06.165 --> 00:48:08.505
<00:48:06.165>So <00:48:06.365>even <00:48:06.565>though <00:48:06.765>the <00:48:06.965>picture <00:48:07.165>is <00:48:07.365>not <00:48:07.565>complete

938
00:48:08.505 --> 00:48:10.585
<00:48:08.505>and <00:48:08.738>not <00:48:08.971>everything's <00:48:09.205>clear <00:48:09.438>that <00:48:09.671>yet, <00:48:09.905>parts

939
00:48:10.585 --> 00:48:12.945
<00:48:10.585>of <00:48:10.725>it <00:48:10.865>are <00:48:11.005>already <00:48:11.145>clear <00:48:11.285>and <00:48:11.425>we <00:48:11.565>are <00:48:11.705>working <00:48:11.845>on <00:48:11.985>them

940
00:48:13.005 --> 00:48:14.745
<00:48:13.005>and <00:48:13.205>we <00:48:13.405>know <00:48:13.605>pretty <00:48:13.805>much <00:48:14.005>what <00:48:14.205>we're <00:48:14.405>doing

941
00:48:15.005 --> 00:48:17.185
<00:48:15.005>and <00:48:15.238>we <00:48:15.471>can <00:48:15.705>already <00:48:15.938>build <00:48:16.171>the <00:48:16.405>individual

942
00:48:17.335 --> 00:48:18.745
<00:48:17.335>modules <00:48:17.758>and <00:48:18.181>sublines <00:48:18.604>here.

943
00:48:18.925 --> 00:48:22.795
<00:48:18.925>So <00:48:19.125>that's <00:48:19.325>the <00:48:19.525>approach, <00:48:19.725>that's <00:48:19.925>how <00:48:20.125>we <00:48:20.325>working

944
00:48:23.055 --> 00:48:26.555
<00:48:23.055>and <00:48:23.288>this <00:48:23.521>is <00:48:23.754>how <00:48:23.988>we <00:48:24.221>keep <00:48:24.455>complexity

945
00:48:26.735 --> 00:48:28.355
<00:48:26.735>as <00:48:27.015>low <00:48:27.295>as <00:48:27.575>we <00:48:27.855>possibly <00:48:28.135>can.

946
00:48:29.855 --> 00:48:32.555
<00:48:29.855>And <00:48:30.010>this <00:48:30.166>brings <00:48:30.321>me <00:48:30.477>to <00:48:30.632>my <00:48:30.788>key <00:48:30.943>takeaways <00:48:31.099>for <00:48:31.255>today.

947
00:48:33.705 --> 00:48:36.395
<00:48:33.705>Keep <00:48:33.938>it <00:48:34.171>simple <00:48:34.404>stupid. <00:48:34.638>It <00:48:34.871>is <00:48:35.105>possible

948
00:48:36.495 --> 00:48:40.235
<00:48:36.495>to <00:48:36.650>run <00:48:36.806>a <00:48:36.961>global <00:48:37.117>marketplace <00:48:37.272>with <00:48:37.428>millions <00:48:37.583>of <00:48:37.739>users <00:48:37.895>on

949
00:48:40.375 --> 00:48:42.555
<00:48:40.375>as <00:48:40.725>a <00:48:41.075>sim <00:48:41.425>single <00:48:41.775>application.

950
00:48:43.295 --> 00:48:46.375
<00:48:43.295>And <00:48:43.528>it's <00:48:43.761>of <00:48:43.995>course <00:48:44.228>it's <00:48:44.461>not <00:48:44.695>easy.

951
00:48:46.715 --> 00:48:48.375
<00:48:46.715>So <00:48:47.065>you <00:48:47.415>need <00:48:47.765>to <00:48:48.115>work

952
00:48:48.875 --> 00:48:51.695
<00:48:48.875>and <00:48:49.075>fight <00:48:49.275>back <00:48:49.475>on <00:48:49.675>complexity <00:48:49.875>all <00:48:50.075>the <00:48:50.275>time

953
00:48:51.695 --> 00:48:53.935
<00:48:51.695>because <00:48:52.045>it's <00:48:52.395>creeping <00:48:52.745>in <00:48:53.095>wherever.

954
00:48:55.435 --> 00:48:56.735
<00:48:55.435>If <00:48:55.669>you <00:48:55.903>don't <00:48:56.137>really <00:48:56.371>fight <00:48:56.605>back,

955
00:48:56.735 --> 00:48:57.775
<00:48:56.735>it's <00:48:56.969>just <00:48:57.203>creeping <00:48:57.437>in <00:48:57.671>everywhere.

956
00:48:58.395 --> 00:49:00.815
<00:48:58.395>And <00:48:58.570>for <00:48:58.745>that <00:48:58.920>you <00:48:59.095>need <00:48:59.270>to <00:48:59.445>create <00:48:59.620>clear <00:48:59.795>principles,

957
00:49:00.875 --> 00:49:03.535
<00:49:00.875>you <00:49:01.030>need <00:49:01.186>rules, <00:49:01.341>but <00:49:01.497>you <00:49:01.652>also <00:49:01.808>need <00:49:01.963>the <00:49:02.119>right <00:49:02.275>culture

958
00:49:03.635 --> 00:49:07.095
<00:49:03.635>and <00:49:03.775>mindset <00:49:03.915>of <00:49:04.055>people <00:49:04.195>that <00:49:04.335>are <00:49:04.475>really <00:49:04.615>aware, <00:49:04.755>okay, <00:49:04.895>we <00:49:05.035>need

959
00:49:07.095 --> 00:49:08.855
<00:49:07.095>to <00:49:07.294>fight <00:49:07.495>back <00:49:07.694>on <00:49:07.895>complexity <00:49:08.095>all <00:49:08.294>the <00:49:08.495>time

960
00:49:09.315 --> 00:49:11.655
<00:49:09.315>and <00:49:09.490>we <00:49:09.665>really <00:49:09.840>need <00:49:10.015>to <00:49:10.190>think <00:49:10.365>about <00:49:10.540>isn't <00:49:10.715>there

961
00:49:12.365 --> 00:49:14.585
<00:49:12.365>simple <00:49:12.598>solution <00:49:12.831>that <00:49:13.064>really <00:49:13.298>solve <00:49:13.531>the <00:49:13.765>problem

962
00:49:15.085 --> 00:49:19.345
<00:49:15.085>and <00:49:15.225>is <00:49:15.365>simple <00:49:15.505>in <00:49:15.645>the <00:49:15.785>sense <00:49:15.925>as <00:49:16.065>the <00:49:16.205>opposite <00:49:16.345>of <00:49:16.485>complex.

963
00:49:20.525 --> 00:49:22.545
<00:49:20.525>And <00:49:20.680>then <00:49:20.836>you <00:49:20.991>also, <00:49:21.147>of <00:49:21.302>course, <00:49:21.458>you <00:49:21.613>need <00:49:21.769>a <00:49:21.925>system,

964
00:49:22.765 --> 00:49:26.805
<00:49:22.765>you <00:49:22.964>need <00:49:23.165>a <00:49:23.365>setup <00:49:23.565>where <00:49:23.765>you <00:49:23.964>can <00:49:24.165>want

965
00:49:27.385 --> 00:49:30.965
<00:49:27.385>not <00:49:27.525>only <00:49:27.665>rely, <00:49:27.805>we <00:49:27.945>must <00:49:28.085>not <00:49:28.225>only <00:49:28.365>rely <00:49:28.505>on <00:49:28.645>the <00:49:28.785>discipline

966
00:49:30.965 --> 00:49:33.125
<00:49:30.965>of <00:49:31.120>each <00:49:31.276>individual, <00:49:31.431>but <00:49:31.587>you <00:49:31.742>have <00:49:31.898>to <00:49:32.053>have <00:49:32.209>a <00:49:32.365>system

967
00:49:33.125 --> 00:49:36.085
<00:49:33.125>where <00:49:33.405>it's <00:49:33.685>easier <00:49:33.965>to <00:49:34.245>work <00:49:34.525>within

968
00:49:37.555 --> 00:49:40.455
<00:49:37.555>the <00:49:37.788>framework <00:49:38.021>that's <00:49:38.254>been <00:49:38.488>agreed <00:49:38.721>on <00:49:38.955>than

969
00:49:40.715 --> 00:49:43.575
<00:49:40.715>to <00:49:40.890>just <00:49:41.065>circumvent <00:49:41.240>it <00:49:41.415>or <00:49:41.590>do <00:49:41.765>your <00:49:41.940>own <00:49:42.115>thing.

970
00:49:44.515 --> 00:49:47.375
<00:49:44.515>And <00:49:44.714>last <00:49:44.915>but <00:49:45.115>not <00:49:45.315>least, <00:49:45.515>structuring <00:49:45.714>a <00:49:45.915>system

971
00:49:47.835 --> 00:49:49.495
<00:49:47.835>and <00:49:48.115>finding <00:49:48.395>a <00:49:48.675>good <00:49:48.955>structure <00:49:49.235>is,

972
00:49:49.595 --> 00:49:51.335
<00:49:49.595>is <00:49:49.944>really <00:49:50.294>an <00:49:50.645>important <00:49:50.995>thing.

973
00:49:51.475 --> 00:49:53.775
<00:49:51.475>Taking <00:49:51.650>care <00:49:51.825>of <00:49:52.000>it. <00:49:52.174>It's, <00:49:52.350>it's <00:49:52.525>a <00:49:52.700>continuous <00:49:52.875>process.

974
00:49:53.775 --> 00:49:57.015
<00:49:53.775>Must <00:49:53.930>have <00:49:54.086>more <00:49:54.241>the <00:49:54.397>time <00:49:54.552>like <00:49:54.708>fighting <00:49:54.863>back <00:49:55.019>on <00:49:55.175>complexity

975
00:49:57.715 --> 00:50:00.775
<00:49:57.715>and <00:49:57.995>it <00:49:58.275>absolutely <00:49:58.555>makes <00:49:58.835>some <00:49:59.115>sense

976
00:50:00.835 --> 00:50:02.855
<00:50:00.835>to <00:50:01.185>get <00:50:01.535>some <00:50:01.885>help <00:50:02.235>here.

977
00:50:03.275 --> 00:50:06.095
<00:50:03.275>So <00:50:03.415>that <00:50:03.555>brings <00:50:03.695>me <00:50:03.835>to <00:50:03.975>the <00:50:04.115>end. <00:50:04.255>Thank <00:50:04.395>you <00:50:04.535>very <00:50:04.675>much.