WEBVTT

1
00:00:05.100 --> 00:00:12.400
<00:00:05.100>You <00:00:06.500>very

2
00:00:09.400 --> 00:00:12.600
much.

3
00:00:12.600 --> 00:00:13.900
<00:00:12.600>Oh, <00:00:12.990>this <00:00:13.380>is <00:00:13.770>loud.

4
00:00:14.700 --> 00:00:18.100
<00:00:14.700>Okay. <00:00:14.979>Hi <00:00:15.260>everybody. <00:00:15.540>I'm <00:00:15.819>gonna <00:00:16.099>talk

5
00:00:17.100 --> 00:00:21.100
<00:00:17.100>to <00:00:17.300>to <00:00:17.500>you <00:00:17.700>today <00:00:17.900>about <00:00:18.100>my <00:00:18.300>favorite <00:00:18.500>topic

6
00:00:20.100 --> 00:00:23.400
<00:00:20.100>and <00:00:20.275>I <00:00:20.450>hope <00:00:20.625>and <00:00:20.800>I <00:00:20.975>see <00:00:21.150>you <00:00:21.325>gonna <00:00:21.500>like

7
00:00:23.400 --> 00:00:26.200
<00:00:23.400>it <00:00:23.575>because <00:00:23.750>you're <00:00:23.924>so <00:00:24.099>many <00:00:24.275>and <00:00:24.450>nobody <00:00:24.625>will <00:00:24.799>get

8
00:00:26.200 --> 00:00:28.100
<00:00:26.200>out <00:00:26.550>before <00:00:26.900>the <00:00:27.250>end. <00:00:27.599>So

9
00:00:29.100 --> 00:00:32.200
<00:00:29.100>we're <00:00:29.240>going <00:00:29.380>to <00:00:29.520>have <00:00:29.660>fun. <00:00:29.800>Okay, <00:00:29.940>some <00:00:30.080>of <00:00:30.220>you <00:00:30.360>might <00:00:30.500>know

10
00:00:32.200 --> 00:00:35.600
<00:00:32.200>me. <00:00:32.400>My <00:00:32.600>name <00:00:32.800>is <00:00:33.000>carola <00:00:33.200>on <00:00:33.400>Twitter. <00:00:33.600>You

11
00:00:35.600 --> 00:00:39.000
<00:00:35.600>find <00:00:35.880>me <00:00:36.160>under <00:00:36.440>this <00:00:36.720>handle <00:00:37.000>chiroply

12
00:00:38.200 --> 00:00:41.900
<00:00:38.200>and <00:00:38.666>I'm <00:00:39.133>tweeting <00:00:39.600>mostly

13
00:00:41.900 --> 00:00:44.500
<00:00:41.900>about <00:00:42.180>software <00:00:42.460>architecture <00:00:42.739>and <00:00:43.019>domain <00:00:43.300>driven

14
00:00:44.500 --> 00:00:44.700
design.

15
00:00:45.600 --> 00:00:48.900
<00:00:45.600>And <00:00:46.066>I've <00:00:46.533>studied <00:00:47.000>computer

16
00:00:48.900 --> 00:00:52.100
<00:00:48.900>science <00:00:49.180>in <00:00:49.460>the <00:00:49.739>last <00:00:50.019>century, <00:00:50.300>you

17
00:00:51.100 --> 00:00:52.100
know.

18
00:00:54.600 --> 00:00:57.800
<00:00:54.600>At <00:00:54.833>the <00:00:55.066>University <00:00:55.300>of <00:00:55.533>Hamburg <00:00:55.766>wonderful <00:00:56.000>place

19
00:00:57.800 --> 00:01:02.000
<00:00:57.800>Hamburg <00:00:58.266>and <00:00:58.733>after <00:00:59.199>my

20
00:01:01.400 --> 00:01:06.500
<00:01:01.400>studies, <00:01:01.633>I <00:01:01.866>started <00:01:02.100>to <00:01:02.333>program <00:01:02.566>c++, <00:01:02.800>Java

21
00:01:05.500 --> 00:01:08.400
<00:01:05.500>wasn't <00:01:05.850>even <00:01:06.200>born <00:01:06.550>you. <00:01:06.900>Remember.

22
00:01:08.400 --> 00:01:11.900
<00:01:08.400>I <00:01:08.575>mean <00:01:08.750>some <00:01:08.925>of <00:01:09.100>you <00:01:09.275>might <00:01:09.450>so <00:01:09.625>Java <00:01:09.800>came

23
00:01:11.900 --> 00:01:14.600
<00:01:11.900>into <00:01:12.133>life <00:01:12.366>when <00:01:12.600>I <00:01:12.833>had <00:01:13.066>my <00:01:13.300>first

24
00:01:14.600 --> 00:01:18.200
<00:01:14.600>two <00:01:14.833>three <00:01:15.066>years <00:01:15.300>of <00:01:15.533>programming <00:01:15.766>experience <00:01:16.000>a

25
00:01:17.200 --> 00:01:21.100
<00:01:17.200>wonderful <00:01:17.550>small <00:01:17.900>language. <00:01:18.250>Everybody <00:01:18.600>was

26
00:01:20.100 --> 00:01:23.900
<00:01:20.100>like <00:01:20.449>wow <00:01:20.800>something <00:01:21.149>easy <00:01:21.500>to

27
00:01:23.900 --> 00:01:26.300
<00:01:23.900>understand. <00:01:24.250>Well <00:01:24.600>today. <00:01:24.950>We <00:01:25.300>are

28
00:01:26.300 --> 00:01:28.400
<00:01:26.300>in <00:01:26.500>a <00:01:26.700>different <00:01:26.899>Century <00:01:27.100>you <00:01:27.300>all <00:01:27.500>know <00:01:27.700>that

29
00:01:29.200 --> 00:01:31.100
<00:01:29.200>and <00:01:29.900>in <00:01:30.600>2004

30
00:01:31.700 --> 00:01:35.300
<00:01:31.700>a <00:01:31.875>colleague <00:01:32.050>of <00:01:32.225>mine <00:01:32.400>came <00:01:32.575>by <00:01:32.750>and <00:01:32.925>said <00:01:33.100>you

31
00:01:34.300 --> 00:01:37.000
<00:01:34.300>have <00:01:34.649>to <00:01:35.000>read <00:01:35.350>this <00:01:35.700>book.

32
00:01:38.100 --> 00:01:41.700
<00:01:38.100>And <00:01:38.255>it <00:01:38.411>was <00:01:38.566>this <00:01:38.722>book <00:01:38.877>domain <00:01:39.033>driven <00:01:39.188>design <00:01:39.344>by <00:01:39.500>Eric

33
00:01:41.700 --> 00:01:42.800
<00:01:41.700>Evans <00:01:42.030>the <00:01:42.360>Blue <00:01:42.690>Book.

34
00:01:44.200 --> 00:01:45.500
<00:01:44.200>And <00:01:44.590>I <00:01:44.980>read <00:01:45.370>it.

35
00:01:46.400 --> 00:01:49.700
<00:01:46.400>And <00:01:46.633>I <00:01:46.866>said, <00:01:47.100>wow, <00:01:47.333>this <00:01:47.566>this <00:01:47.800>is

36
00:01:49.700 --> 00:01:52.400
<00:01:49.700>what <00:01:49.933>we <00:01:50.166>need <00:01:50.400>and <00:01:50.633>if <00:01:50.866>you <00:01:51.100>ever

37
00:01:52.400 --> 00:01:53.200
<00:01:52.400>read <00:01:52.760>this <00:01:53.120>book.

38
00:01:54.300 --> 00:01:58.700
<00:01:54.300>It's <00:01:54.580>difficult <00:01:54.860>to <00:01:55.140>read <00:01:55.420>really <00:01:55.700>Eric.

39
00:01:59.700 --> 00:02:02.200
<00:01:59.700>Does <00:02:00.050>some <00:02:00.400>complicated <00:02:00.750>phrases <00:02:01.100>in

40
00:02:02.200 --> 00:02:06.400
<00:02:02.200>his <00:02:02.433>book <00:02:02.666>don't <00:02:02.900>don't <00:02:03.133>stop <00:02:03.366>please <00:02:03.600>and

41
00:02:05.400 --> 00:02:08.200
<00:02:05.400>the <00:02:05.750>most <00:02:06.100>important <00:02:06.450>thing <00:02:06.800>is

42
00:02:08.200 --> 00:02:12.600
<00:02:08.199>don't <00:02:08.479>stop <00:02:08.759>before <00:02:09.039>page <00:02:09.320>140 <00:02:09.600>because

43
00:02:12.600 --> 00:02:16.200
<00:02:12.600>there <00:02:12.880>the <00:02:13.160>interesting <00:02:13.440>stuff <00:02:13.720>begins <00:02:14.000>and

44
00:02:15.200 --> 00:02:18.400
<00:02:15.200>this <00:02:15.355>is <00:02:15.511>what <00:02:15.666>I <00:02:15.822>gonna <00:02:15.977>talk <00:02:16.133>to <00:02:16.288>you <00:02:16.444>about <00:02:16.600>today.

45
00:02:19.600 --> 00:02:20.600
<00:02:19.600>because <00:02:20.049>this <00:02:20.500>book

46
00:02:21.600 --> 00:02:24.300
<00:02:21.600>will <00:02:21.950>give <00:02:22.299>you <00:02:22.650>everything <00:02:23.000>you

47
00:02:24.300 --> 00:02:27.000
<00:02:24.300>need <00:02:24.580>to <00:02:24.860>be <00:02:25.140>a <00:02:25.420>good <00:02:25.700>architect.

48
00:02:27.900 --> 00:02:30.300
<00:02:27.900>A <00:02:28.133>female <00:02:28.366>one, <00:02:28.600>of <00:02:28.833>course <00:02:29.066>as <00:02:29.300>well.

49
00:02:32.900 --> 00:02:35.900
<00:02:32.900>And <00:02:33.075>this <00:02:33.250>was <00:02:33.425>the <00:02:33.600>moment <00:02:33.775>when <00:02:33.950>I <00:02:34.125>said <00:02:34.300>this

50
00:02:35.900 --> 00:02:38.600
<00:02:35.900>is <00:02:36.027>what <00:02:36.154>I <00:02:36.281>want <00:02:36.409>to <00:02:36.536>be. <00:02:36.663>I <00:02:36.790>want <00:02:36.918>to <00:02:37.045>be <00:02:37.172>an <00:02:37.300>architect.

51
00:02:38.600 --> 00:02:41.500
<00:02:38.600>I <00:02:38.799>want <00:02:39.000>to <00:02:39.200>deal <00:02:39.400>with <00:02:39.600>huge <00:02:39.799>structures. <00:02:40.000>I

52
00:02:41.500 --> 00:02:44.800
<00:02:41.500>want <00:02:41.655>to <00:02:41.811>explain <00:02:41.966>people <00:02:42.122>what <00:02:42.277>they <00:02:42.433>have <00:02:42.588>to <00:02:42.744>do <00:02:42.900>to

53
00:02:44.800 --> 00:02:47.900
<00:02:44.800>get <00:02:45.080>their <00:02:45.360>software <00:02:45.640>systems <00:02:45.920>into <00:02:46.200>a

54
00:02:47.900 --> 00:02:50.000
<00:02:47.900>good <00:02:48.250>shape <00:02:48.600>for <00:02:48.950>a <00:02:49.300>long

55
00:02:50.600 --> 00:02:51.000
<00:02:50.600>long <00:02:50.960>time.

56
00:02:52.200 --> 00:02:55.300
<00:02:52.200>And <00:02:52.433>I <00:02:52.666>started <00:02:52.899>to <00:02:53.133>discuss <00:02:53.366>with <00:02:53.600>the

57
00:02:55.300 --> 00:02:58.200
<00:02:55.300>teams <00:02:55.475>in <00:02:55.650>my <00:02:55.825>company. <00:02:56.000>I <00:02:56.175>started <00:02:56.350>to <00:02:56.525>go <00:02:56.700>to

58
00:02:58.200 --> 00:03:01.700
<00:02:58.200>conferences <00:02:58.433>to <00:02:58.666>learn <00:02:58.899>and <00:02:59.133>I <00:02:59.366>started <00:02:59.600>to

59
00:03:01.700 --> 00:03:05.100
<00:03:01.700>do <00:03:01.980>Consulting <00:03:02.260>and <00:03:02.540>look <00:03:02.820>at <00:03:03.100>software

60
00:03:04.100 --> 00:03:08.400
<00:03:04.100>architecture <00:03:04.450>at <00:03:04.799>software <00:03:05.150>systems <00:03:05.500>all

61
00:03:07.400 --> 00:03:11.000
<00:03:07.400>over <00:03:07.633>Europe <00:03:07.866>all <00:03:08.100>over <00:03:08.333>the <00:03:08.566>world <00:03:08.800>and

62
00:03:12.700 --> 00:03:14.100
<00:03:12.700>to <00:03:13.120>nine <00:03:13.540>driven <00:03:13.959>design

63
00:03:15.400 --> 00:03:18.500
<00:03:15.400>helped <00:03:15.680>everyone <00:03:15.960>and <00:03:16.240>finally <00:03:16.520>I <00:03:16.800>put

64
00:03:18.500 --> 00:03:21.300
<00:03:18.500>everything <00:03:18.733>I <00:03:18.966>knew <00:03:19.200>down <00:03:19.433>in <00:03:19.666>this <00:03:19.900>book.

65
00:03:21.300 --> 00:03:24.300
<00:03:21.300>It's <00:03:21.533>available <00:03:21.766>in <00:03:22.000>German <00:03:22.233>and <00:03:22.466>English. <00:03:22.700>But

66
00:03:24.300 --> 00:03:27.200
<00:03:24.300>of <00:03:24.455>course <00:03:24.611>here <00:03:24.766>only <00:03:24.922>put <00:03:25.077>the <00:03:25.233>English <00:03:25.388>one, <00:03:25.544>and <00:03:25.700>this

67
00:03:27.200 --> 00:03:28.300
<00:03:27.200>is <00:03:27.447>my <00:03:27.695>message <00:03:27.942>for <00:03:28.190>you.

68
00:03:29.200 --> 00:03:33.600
<00:03:29.200>Your <00:03:29.433>job <00:03:29.666>is <00:03:29.899>to <00:03:30.133>create <00:03:30.366>sustainable <00:03:30.600>software

69
00:03:33.600 --> 00:03:36.600
<00:03:33.600>architecture <00:03:33.950>architectures <00:03:34.299>that <00:03:34.650>lives <00:03:35.000>for

70
00:03:36.600 --> 00:03:39.200
<00:03:36.600>a <00:03:36.833>long <00:03:37.066>time <00:03:37.299>because <00:03:37.533>everything <00:03:37.766>you <00:03:38.000>do

71
00:03:39.200 --> 00:03:42.800
<00:03:39.200>everything <00:03:39.549>you <00:03:39.899>program <00:03:40.250>will <00:03:40.600>live

72
00:03:42.800 --> 00:03:45.400
<00:03:42.800>longer <00:03:43.033>than <00:03:43.266>you <00:03:43.500>have <00:03:43.733>your <00:03:43.966>finger <00:03:44.200>in

73
00:03:45.400 --> 00:03:48.300
<00:03:45.400>this <00:03:45.540>bit <00:03:45.680>of <00:03:45.820>source <00:03:45.960>code. <00:03:46.100>Someone <00:03:46.240>else <00:03:46.380>will <00:03:46.520>have <00:03:46.660>to <00:03:46.800>look

74
00:03:48.300 --> 00:03:51.100
<00:03:48.300>at <00:03:48.440>it. <00:03:48.580>We'll <00:03:48.720>have <00:03:48.860>to <00:03:49.000>deal <00:03:49.140>with <00:03:49.280>it. <00:03:49.420>So <00:03:49.560>this <00:03:49.700>is

75
00:03:51.100 --> 00:03:52.600
<00:03:51.100>the <00:03:51.775>goal <00:03:52.450>and

76
00:03:55.400 --> 00:03:58.600
<00:03:55.400>My <00:03:55.600>home <00:03:55.800>base <00:03:56.000>is <00:03:56.200>a <00:03:56.400>little <00:03:56.600>company <00:03:56.800>in

77
00:03:58.600 --> 00:04:01.400
<00:03:58.600>Germany, <00:03:58.950>which <00:03:59.299>is <00:03:59.650>called <00:04:00.000>WPS.

78
00:04:02.200 --> 00:04:05.300
<00:04:02.200>Workplace <00:04:02.433>Solutions <00:04:02.666>and <00:04:02.899>we <00:04:03.133>are <00:04:03.366>working <00:04:03.600>with

79
00:04:05.300 --> 00:04:07.800
<00:04:05.300>domain <00:04:05.650>driven <00:04:06.000>design <00:04:06.350>since <00:04:06.700>2004.

80
00:04:08.600 --> 00:04:11.700
<00:04:08.600>And <00:04:08.775>it's <00:04:08.950>really <00:04:09.125>great. <00:04:09.299>We <00:04:09.475>are <00:04:09.650>achieving <00:04:09.825>this <00:04:10.000>goal

81
00:04:11.700 --> 00:04:14.200
<00:04:11.700>of <00:04:11.980>sustainable <00:04:12.260>software <00:04:12.540>architecture <00:04:12.820>and <00:04:13.100>I

82
00:04:14.200 --> 00:04:18.000
<00:04:14.200>hope <00:04:14.339>that <00:04:14.480>I <00:04:14.619>can <00:04:14.760>give <00:04:14.899>you <00:04:15.040>some <00:04:15.179>of <00:04:15.320>this <00:04:15.459>Joy <00:04:15.600>some

83
00:04:17.300 --> 00:04:20.300
<00:04:17.300>of <00:04:17.533>this <00:04:17.766>hope <00:04:18.000>that <00:04:18.233>it's <00:04:18.466>really <00:04:18.700>possible.

84
00:04:21.500 --> 00:04:24.500
<00:04:21.500>We <00:04:21.700>are <00:04:21.899>all <00:04:22.100>of <00:04:22.300>a <00:04:22.500>Germany. <00:04:22.700>We <00:04:22.900>are

85
00:04:24.500 --> 00:04:27.200
<00:04:24.500>140 <00:04:24.700>people <00:04:24.900>now. <00:04:25.100>We <00:04:25.300>are <00:04:25.500>of <00:04:25.700>course <00:04:25.900>like

86
00:04:27.200 --> 00:04:30.100
<00:04:27.200>everybody <00:04:27.433>here <00:04:27.666>searching <00:04:27.900>for <00:04:28.133>new <00:04:28.366>colleagues <00:04:28.599>like

87
00:04:30.700 --> 00:04:33.200
<00:04:30.700>You <00:04:30.933>all <00:04:31.166>know <00:04:31.400>but <00:04:31.633>what <00:04:31.866>is <00:04:32.099>actually

88
00:04:33.200 --> 00:04:33.800
<00:04:33.200>the <00:04:33.740>goal?

89
00:04:34.600 --> 00:04:37.900
<00:04:34.600>The <00:04:34.833>goal <00:04:35.066>of <00:04:35.300>sustainable <00:04:35.533>software <00:04:35.766>architecture. <00:04:36.000>Is

90
00:04:37.900 --> 00:04:39.600
<00:04:37.900>that <00:04:38.599>my <00:04:39.299>teams?

91
00:04:40.200 --> 00:04:41.200
<00:04:40.200>your <00:04:41.099>team

92
00:04:42.600 --> 00:04:45.700
<00:04:42.600>wherever <00:04:42.775>you <00:04:42.950>are <00:04:43.125>working <00:04:43.300>is <00:04:43.475>able <00:04:43.650>to <00:04:43.825>have <00:04:44.000>a

93
00:04:45.700 --> 00:04:48.100
<00:04:45.700>software <00:04:46.050>system <00:04:46.400>where <00:04:46.750>they <00:04:47.099>can

94
00:04:48.100 --> 00:04:50.500
<00:04:48.100>change <00:04:48.450>and <00:04:48.800>develop <00:04:49.150>new <00:04:49.500>features.

95
00:04:52.300 --> 00:04:55.000
<00:04:52.300>Or <00:04:52.533>all <00:04:52.766>the <00:04:53.000>long <00:04:53.233>time <00:04:53.466>of <00:04:53.700>the

96
00:04:55.400 --> 00:04:58.600
<00:04:55.400>living <00:04:55.575>of <00:04:55.750>the <00:04:55.924>software <00:04:56.099>system <00:04:56.275>up <00:04:56.450>here. <00:04:56.625>So <00:04:56.799>what

97
00:04:58.600 --> 00:05:01.500
<00:04:58.600>do <00:04:58.755>you <00:04:58.911>see <00:04:59.066>you <00:04:59.222>see <00:04:59.377>several <00:04:59.533>releases <00:04:59.688>here <00:04:59.844>the <00:05:00.000>release

98
00:05:01.500 --> 00:05:04.400
<00:05:01.500>Cycles <00:05:01.733>over <00:05:01.966>time <00:05:02.200>and <00:05:02.433>the <00:05:02.666>numbers <00:05:02.900>of

99
00:05:04.400 --> 00:05:07.800
<00:05:04.400>features <00:05:04.633>that <00:05:04.866>we <00:05:05.099>can <00:05:05.333>deliver <00:05:05.566>per <00:05:05.799>release.

100
00:05:08.500 --> 00:05:11.800
<00:05:08.500>And <00:05:08.700>in <00:05:08.900>the <00:05:09.100>beginning <00:05:09.300>it's <00:05:09.500>often <00:05:09.700>really <00:05:09.900>great.

101
00:05:11.800 --> 00:05:14.300
<00:05:11.800>People <00:05:12.150>are <00:05:12.500>delivering <00:05:12.850>features <00:05:13.200>and

102
00:05:14.300 --> 00:05:15.200
<00:05:14.300>features <00:05:14.705>and <00:05:15.110>features.

103
00:05:16.100 --> 00:05:19.400
<00:05:16.100>And <00:05:16.333>then <00:05:16.566>all <00:05:16.800>of <00:05:17.033>sudden <00:05:17.266>or <00:05:17.500>with

104
00:05:19.400 --> 00:05:22.700
<00:05:19.400>time <00:05:19.633>they <00:05:19.866>start <00:05:20.099>to <00:05:20.333>create <00:05:20.566>structures <00:05:20.799>that

105
00:05:22.700 --> 00:05:25.700
<00:05:22.700>don't <00:05:22.900>really <00:05:23.099>work. <00:05:23.300>They <00:05:23.500>don't <00:05:23.700>get <00:05:23.900>time <00:05:24.099>to

106
00:05:25.700 --> 00:05:28.900
<00:05:25.700>reorganize <00:05:26.166>the <00:05:26.633>things <00:05:27.099>they

107
00:05:28.900 --> 00:05:31.400
<00:05:28.900>don't <00:05:29.133>get <00:05:29.366>time <00:05:29.599>for <00:05:29.833>refectorings <00:05:30.066>and <00:05:30.299>then

108
00:05:31.400 --> 00:05:34.300
<00:05:31.400>they <00:05:31.633>end <00:05:31.866>up <00:05:32.099>down <00:05:32.333>here <00:05:32.566>and <00:05:32.799>this

109
00:05:34.300 --> 00:05:37.900
<00:05:34.300>is <00:05:34.533>really <00:05:34.766>a <00:05:35.000>frustrating <00:05:35.233>experience <00:05:35.466>and <00:05:35.700>I

110
00:05:37.900 --> 00:05:40.500
<00:05:37.900>guess <00:05:38.133>you <00:05:38.366>all <00:05:38.599>had <00:05:38.833>this <00:05:39.066>experience <00:05:39.299>in

111
00:05:40.500 --> 00:05:43.400
<00:05:40.500>your <00:05:40.780>life <00:05:41.060>of <00:05:41.340>as <00:05:41.620>a <00:05:41.900>programmer

112
00:05:43.400 --> 00:05:46.600
<00:05:43.400>and <00:05:43.750>domain <00:05:44.099>of <00:05:44.450>design <00:05:44.799>can

113
00:05:46.600 --> 00:05:49.900
<00:05:46.600>help <00:05:46.800>us <00:05:47.000>to <00:05:47.200>stay <00:05:47.400>up <00:05:47.600>here <00:05:47.800>or <00:05:48.000>even

114
00:05:49.900 --> 00:05:50.900
<00:05:49.900>to <00:05:50.125>get <00:05:50.349>back <00:05:50.575>up <00:05:50.799>here.

115
00:05:52.400 --> 00:05:55.800
<00:05:52.400>And <00:05:52.599>in <00:05:52.799>the <00:05:53.000>last <00:05:53.200>15 <00:05:53.400>years, <00:05:53.599>I've <00:05:53.799>looked

116
00:05:55.800 --> 00:05:59.200
<00:05:55.800>at <00:05:56.033>many <00:05:56.266>software <00:05:56.500>systems <00:05:56.733>in <00:05:56.966>various <00:05:57.200>programming

117
00:05:58.200 --> 00:06:01.900
<00:05:58.200>languages <00:05:58.666>like <00:05:59.133>C++ <00:05:59.599>C

118
00:06:01.900 --> 00:06:05.100
<00:06:01.900>sharp <00:06:02.250>Java <00:06:02.599>typescript <00:06:02.950>PHP <00:06:03.299>even

119
00:06:04.100 --> 00:06:07.600
<00:06:04.100>sap <00:06:04.450>and <00:06:04.800>pl <00:06:05.150>SQL <00:06:05.500>in

120
00:06:07.600 --> 00:06:10.700
<00:06:07.600>all <00:06:07.880>sizes <00:06:08.160>and <00:06:08.440>they <00:06:08.720>all <00:06:09.000>have

121
00:06:10.700 --> 00:06:13.400
<00:06:10.700>similar <00:06:10.933>problems. <00:06:11.166>So <00:06:11.400>you <00:06:11.633>see <00:06:11.866>there <00:06:12.099>are

122
00:06:14.300 --> 00:06:17.300
<00:06:14.300>This <00:06:14.427>is <00:06:14.554>the <00:06:14.681>size <00:06:14.809>in <00:06:14.936>lines <00:06:15.063>of <00:06:15.190>code. <00:06:15.318>So <00:06:15.445>there <00:06:15.572>are <00:06:15.700>small

123
00:06:17.300 --> 00:06:20.400
<00:06:17.300>systems <00:06:17.533>100,000 <00:06:17.766>lines <00:06:18.000>of <00:06:18.233>code <00:06:18.466>is <00:06:18.700>a

124
00:06:20.400 --> 00:06:23.600
<00:06:20.400>small <00:06:20.679>system <00:06:20.960>something <00:06:21.239>that <00:06:21.520>students <00:06:21.799>never

125
00:06:23.600 --> 00:06:26.400
<00:06:23.600>will <00:06:23.800>never <00:06:24.000>produce <00:06:24.200>at <00:06:24.400>the <00:06:24.600>University. <00:06:24.800>But <00:06:25.000>if

126
00:06:26.400 --> 00:06:29.300
<00:06:26.400>you <00:06:26.599>program <00:06:26.799>an <00:06:27.000>app <00:06:27.200>for <00:06:27.400>a <00:06:27.599>telephone <00:06:27.799>for

127
00:06:29.300 --> 00:06:32.400
<00:06:29.300>for <00:06:29.500>a <00:06:29.700>mobile, <00:06:29.900>this <00:06:30.100>should <00:06:30.300>be <00:06:30.500>the <00:06:30.700>size.

128
00:06:32.400 --> 00:06:35.200
<00:06:32.400>You <00:06:32.555>know, <00:06:32.711>this <00:06:32.866>is <00:06:33.022>normally <00:06:33.177>the <00:06:33.333>size <00:06:33.488>of <00:06:33.644>an <00:06:33.799>app

129
00:06:35.200 --> 00:06:38.300
<00:06:35.200>on <00:06:35.479>a <00:06:35.760>telephone <00:06:36.039>and <00:06:36.320>we <00:06:36.599>looked

130
00:06:38.300 --> 00:06:39.600
<00:06:38.300>at <00:06:38.592>about <00:06:38.885>120 <00:06:39.177>of <00:06:39.470>them.

131
00:06:40.500 --> 00:06:43.600
<00:06:40.500>Half <00:06:40.655>a <00:06:40.811>million <00:06:40.966>lines <00:06:41.122>of <00:06:41.277>code <00:06:41.433>is <00:06:41.588>quite <00:06:41.744>it's <00:06:41.900>a

132
00:06:43.600 --> 00:06:46.700
<00:06:43.600>bit <00:06:43.775>bigger. <00:06:43.950>This <00:06:44.125>is <00:06:44.300>something <00:06:44.475>you <00:06:44.650>probably <00:06:44.825>programmed <00:06:45.000>for

133
00:06:46.700 --> 00:06:49.500
<00:06:46.700>your <00:06:46.933>clients <00:06:47.166>in <00:06:47.400>your <00:06:47.633>company. <00:06:47.866>They <00:06:48.099>do

134
00:06:49.500 --> 00:06:52.200
<00:06:49.500>different <00:06:49.780>work <00:06:50.060>with <00:06:50.340>these <00:06:50.620>types <00:06:50.900>of

135
00:06:52.200 --> 00:06:55.500
<00:06:52.200>system. <00:06:52.375>But <00:06:52.550>there <00:06:52.724>as <00:06:52.900>well <00:06:53.075>systems <00:06:53.250>over <00:06:53.425>a <00:06:53.599>million

136
00:06:55.500 --> 00:06:58.900
<00:06:55.500>five <00:06:55.733>million <00:06:55.966>15 <00:06:56.200>million <00:06:56.433>really <00:06:56.666>huge <00:06:56.900>monster

137
00:06:58.900 --> 00:07:02.300
<00:06:58.900>of <00:06:59.133>software <00:06:59.366>systems <00:06:59.599>out <00:06:59.833>there <00:07:00.066>and <00:07:00.299>people

138
00:07:01.300 --> 00:07:05.100
<00:07:01.300>normally <00:07:01.533>call <00:07:01.766>me <00:07:02.000>and <00:07:02.233>they <00:07:02.466>say <00:07:02.700>Corolla.

139
00:07:06.100 --> 00:07:09.800
<00:07:06.100>Can <00:07:06.255>you <00:07:06.411>come <00:07:06.566>by <00:07:06.722>we <00:07:06.877>have <00:07:07.033>a <00:07:07.188>legacy <00:07:07.344>system <00:07:07.500>and

140
00:07:09.800 --> 00:07:12.500
<00:07:09.800>it's <00:07:10.080>getting <00:07:10.360>harder <00:07:10.640>and <00:07:10.920>harder <00:07:11.200>to

141
00:07:12.500 --> 00:07:15.000
<00:07:12.500>change <00:07:12.655>and <00:07:12.811>there <00:07:12.966>are <00:07:13.122>so <00:07:13.277>many <00:07:13.433>technical <00:07:13.588>depth <00:07:13.744>in <00:07:13.900>there.

142
00:07:15.200 --> 00:07:16.500
<00:07:15.200>What <00:07:15.590>should <00:07:15.980>we <00:07:16.370>do?

143
00:07:17.600 --> 00:07:19.300
<00:07:17.600>And <00:07:17.800>I <00:07:18.000>go <00:07:18.200>there <00:07:18.400>and <00:07:18.600>I <00:07:18.800>help <00:07:19.000>them.

144
00:07:20.900 --> 00:07:24.200
<00:07:20.900>and <00:07:21.599>2010 <00:07:22.299>something

145
00:07:23.200 --> 00:07:26.600
<00:07:23.200>happened <00:07:23.479>out <00:07:23.760>there <00:07:24.039>and <00:07:24.320>some <00:07:24.599>of

146
00:07:26.600 --> 00:07:29.700
<00:07:26.600>you <00:07:26.775>probably <00:07:26.950>most <00:07:27.125>of <00:07:27.300>you <00:07:27.475>were <00:07:27.650>there <00:07:27.825>someone <00:07:28.000>came

147
00:07:29.700 --> 00:07:30.500
<00:07:29.700>around <00:07:30.060>and <00:07:30.420>said

148
00:07:31.500 --> 00:07:34.800
<00:07:31.500>Oh <00:07:31.733>these <00:07:31.966>horrible <00:07:32.200>huge <00:07:32.433>systems <00:07:32.666>we <00:07:32.900>have

149
00:07:34.800 --> 00:07:37.700
<00:07:34.800>to <00:07:35.080>do <00:07:35.360>microservices <00:07:35.640>and <00:07:35.920>then <00:07:36.200>the

150
00:07:37.700 --> 00:07:41.400
<00:07:37.700>world <00:07:37.979>will <00:07:38.260>be <00:07:38.539>better. <00:07:38.820>Well <00:07:39.099>microservices.

151
00:07:40.400 --> 00:07:43.700
<00:07:40.400>They <00:07:40.679>are <00:07:40.960>the <00:07:41.239>new <00:07:41.520>solution <00:07:41.799>almost

152
00:07:43.700 --> 00:07:46.700
<00:07:43.700>they <00:07:43.900>are <00:07:44.099>not <00:07:44.300>that <00:07:44.500>new <00:07:44.700>anymore, <00:07:44.900>but <00:07:45.099>for

153
00:07:46.700 --> 00:07:49.900
<00:07:46.700>quite <00:07:46.855>a <00:07:47.011>while <00:07:47.166>there <00:07:47.322>were <00:07:47.477>new <00:07:47.633>and <00:07:47.788>I <00:07:47.944>guess <00:07:48.099>you

154
00:07:49.900 --> 00:07:52.800
<00:07:49.900>all <00:07:50.133>heard <00:07:50.366>about <00:07:50.599>that <00:07:50.833>on <00:07:51.066>this <00:07:51.299>all

155
00:07:52.800 --> 00:07:53.600
<00:07:52.800>that <00:07:53.520>conference.

156
00:07:56.500 --> 00:07:57.500
<00:07:56.500>these <00:07:57.400>days

157
00:07:58.500 --> 00:07:59.900
<00:07:58.500>people <00:07:58.752>call <00:07:59.004>me <00:07:59.256>and <00:07:59.508>they <00:07:59.760>say

158
00:08:01.200 --> 00:08:03.400
<00:08:01.200>Carola, <00:08:01.550>can <00:08:01.900>you <00:08:02.250>come <00:08:02.599>by?

159
00:08:04.600 --> 00:08:07.800
<00:08:04.600>We <00:08:05.066>have <00:08:05.533>a <00:08:06.000>legacy

160
00:08:07.800 --> 00:08:11.100
<00:08:07.800>system <00:08:08.033>that <00:08:08.266>we <00:08:08.500>divided <00:08:08.733>into <00:08:08.966>microservices <00:08:09.200>and

161
00:08:10.100 --> 00:08:12.400
<00:08:10.100>it's <00:08:10.566>not <00:08:11.033>getting <00:08:11.500>better.

162
00:08:15.200 --> 00:08:16.100
<00:08:15.200>And <00:08:15.470>I <00:08:15.740>say <00:08:16.010>yes.

163
00:08:17.100 --> 00:08:20.500
<00:08:17.100>I <00:08:17.255>can <00:08:17.411>come <00:08:17.566>by <00:08:17.722>but <00:08:17.877>I <00:08:18.033>know <00:08:18.188>already <00:08:18.344>what <00:08:18.500>has

164
00:08:20.500 --> 00:08:23.700
<00:08:20.500>gone <00:08:20.655>wrong <00:08:20.811>and <00:08:20.966>I <00:08:21.122>will <00:08:21.277>show <00:08:21.433>you <00:08:21.588>this <00:08:21.744>with <00:08:21.900>a

165
00:08:23.700 --> 00:08:26.600
<00:08:23.700>very <00:08:23.933>small <00:08:24.166>diagram <00:08:24.400>that <00:08:24.633>I <00:08:24.866>have <00:08:25.099>stolen.

166
00:08:28.300 --> 00:08:32.500
<00:08:28.300>From <00:08:28.475>Simon <00:08:28.650>Brown <00:08:28.825>you <00:08:29.000>might <00:08:29.175>maybe <00:08:29.350>know <00:08:29.525>it <00:08:29.700>because

167
00:08:31.500 --> 00:08:34.500
<00:08:31.500>what <00:08:31.850>did <00:08:32.200>the <00:08:32.549>people <00:08:32.900>forget

168
00:08:34.500 --> 00:08:37.100
<00:08:34.500>the <00:08:34.780>people <00:08:35.059>forgot <00:08:35.340>that <00:08:35.620>this <00:08:35.900>is

169
00:08:37.100 --> 00:08:39.400
<00:08:37.100>all <00:08:37.800>about <00:08:38.500>modularity.

170
00:08:40.200 --> 00:08:43.400
<00:08:40.200>Modularity, <00:08:40.550>okay. <00:08:40.900>It's <00:08:41.250>all <00:08:41.600>about

171
00:08:43.400 --> 00:08:47.000
<00:08:43.400>modularity. <00:08:43.633>It's <00:08:43.866>about <00:08:44.100>creating <00:08:44.333>small <00:08:44.566>modules <00:08:44.800>in

172
00:08:46.100 --> 00:08:49.700
<00:08:46.100>your <00:08:46.333>software <00:08:46.566>system <00:08:46.800>and <00:08:47.033>putting <00:08:47.266>them <00:08:47.500>into

173
00:08:49.700 --> 00:08:50.800
microservices.

174
00:08:51.600 --> 00:08:52.400
<00:08:51.600>But <00:08:51.960>it's <00:08:52.319>not.

175
00:08:53.400 --> 00:08:55.900
<00:08:53.400>About <00:08:53.633>having <00:08:53.866>a <00:08:54.100>big <00:08:54.333>ball <00:08:54.566>of <00:08:54.800>mud.

176
00:08:56.700 --> 00:08:59.600
<00:08:56.700>Without <00:08:57.050>any <00:08:57.400>separate <00:08:57.750>little <00:08:58.100>bits

177
00:08:59.600 --> 00:09:02.600
<00:08:59.600>and <00:08:59.833>pieces <00:09:00.066>that <00:09:00.300>you <00:09:00.533>just <00:09:00.766>cut <00:09:01.000>into

178
00:09:02.600 --> 00:09:05.800
<00:09:02.600>pieces <00:09:02.800>and <00:09:03.000>then <00:09:03.200>you <00:09:03.400>will <00:09:03.600>have <00:09:03.800>a <00:09:04.000>distributed

179
00:09:05.800 --> 00:09:06.800
<00:09:05.800>big <00:09:06.099>ball <00:09:06.400>of <00:09:06.699>mud.

180
00:09:07.500 --> 00:09:11.300
<00:09:07.500>This <00:09:07.675>is <00:09:07.850>actually <00:09:08.025>not <00:09:08.200>better. <00:09:08.375>This <00:09:08.550>is <00:09:08.725>worse. <00:09:08.900>No

181
00:09:10.300 --> 00:09:13.800
<00:09:10.300>the <00:09:11.000>you <00:09:11.699>are

182
00:09:13.800 --> 00:09:16.600
<00:09:13.800>suffering <00:09:13.974>more <00:09:14.150>over <00:09:14.324>here <00:09:14.500>than <00:09:14.675>over <00:09:14.849>there. <00:09:15.025>So <00:09:15.199>if

183
00:09:16.600 --> 00:09:19.200
<00:09:16.600>you're <00:09:16.755>not <00:09:16.911>going <00:09:17.066>oops <00:09:17.222>upon <00:09:17.377>me, <00:09:17.533>if <00:09:17.688>you're <00:09:17.844>not <00:09:18.000>going

184
00:09:19.200 --> 00:09:23.100
<00:09:19.200>up <00:09:19.400>here <00:09:19.600>and <00:09:19.800>you're <00:09:20.000>cutting <00:09:20.200>your <00:09:20.400>monolith <00:09:20.600>into

185
00:09:22.100 --> 00:09:25.300
<00:09:22.100>decent <00:09:22.566>modules <00:09:23.033>that <00:09:23.500>have

186
00:09:25.300 --> 00:09:28.400
<00:09:25.300>high <00:09:25.533>cohesion <00:09:25.766>and <00:09:26.000>low <00:09:26.233>coupling. <00:09:26.466>You <00:09:26.699>will

187
00:09:28.400 --> 00:09:31.300
<00:09:28.400>never <00:09:28.750>gain <00:09:29.100>anything <00:09:29.449>from <00:09:29.800>going

188
00:09:31.300 --> 00:09:34.300
<00:09:31.300>to <00:09:31.474>microservices. <00:09:31.650>So <00:09:31.824>this <00:09:32.000>is <00:09:32.175>the <00:09:32.349>way <00:09:32.525>you <00:09:32.699>have

189
00:09:34.300 --> 00:09:37.500
<00:09:34.300>to <00:09:34.439>go <00:09:34.579>and <00:09:34.719>this <00:09:34.859>is <00:09:35.000>what <00:09:35.140>people <00:09:35.280>forgot <00:09:35.420>and <00:09:35.560>what <00:09:35.699>I

190
00:09:37.500 --> 00:09:40.200
<00:09:37.500>see <00:09:37.780>in <00:09:38.060>those <00:09:38.340>systems. <00:09:38.620>They <00:09:38.900>look

191
00:09:40.200 --> 00:09:43.200
<00:09:40.200>like <00:09:40.400>this <00:09:40.600>inside. <00:09:40.800>They <00:09:41.000>have <00:09:41.200>big <00:09:41.400>ball <00:09:41.600>of

192
00:09:43.200 --> 00:09:47.400
<00:09:43.200>smart <00:09:43.400>inside. <00:09:43.600>This <00:09:43.800>is <00:09:44.000>these <00:09:44.200>little <00:09:44.400>squares <00:09:44.600>are

193
00:09:47.400 --> 00:09:50.200
<00:09:47.400>all <00:09:47.680>classes <00:09:47.959>in <00:09:48.240>a <00:09:48.520>Java <00:09:48.800>system.

194
00:09:50.900 --> 00:09:55.400
<00:09:50.900>All <00:09:51.180>together <00:09:51.459>something <00:09:51.740>like <00:09:52.020>436 <00:09:52.300>classes

195
00:09:54.400 --> 00:09:57.700
<00:09:54.400>and <00:09:54.750>then <00:09:55.100>they <00:09:55.449>are <00:09:55.800>Tangled

196
00:09:57.700 --> 00:10:00.800
<00:09:57.700>with <00:09:57.855>each <00:09:58.011>other. <00:09:58.166>You <00:09:58.322>can't <00:09:58.477>get <00:09:58.633>them <00:09:58.788>apart. <00:09:58.944>Each <00:09:59.100>of

197
00:10:00.800 --> 00:10:03.800
<00:10:00.800>them <00:10:00.955>needs <00:10:01.111>the <00:10:01.266>other <00:10:01.422>one <00:10:01.577>and <00:10:01.733>the <00:10:01.888>colors <00:10:02.044>indicate <00:10:02.199>that

198
00:10:03.800 --> 00:10:06.100
<00:10:03.800>they <00:10:04.079>come <00:10:04.359>from <00:10:04.640>different <00:10:04.920>parts <00:10:05.199>of

199
00:10:06.100 --> 00:10:09.200
<00:10:06.100>the <00:10:06.380>system <00:10:06.660>different <00:10:06.940>modules. <00:10:07.220>So <00:10:07.500>they

200
00:10:09.200 --> 00:10:13.400
<00:10:09.200>really <00:10:09.480>connect <00:10:09.760>everything <00:10:10.040>together. <00:10:10.320>And <00:10:10.600>well

201
00:10:12.400 --> 00:10:15.500
<00:10:12.400>the <00:10:12.680>whole <00:10:12.959>thing <00:10:13.240>has <00:10:13.520>three <00:10:13.800>million

202
00:10:15.500 --> 00:10:19.100
<00:10:15.500>lines <00:10:15.675>of <00:10:15.850>code <00:10:16.025>and <00:10:16.200>this <00:10:16.375>cycle <00:10:16.550>represents <00:10:16.725>half <00:10:16.900>a

203
00:10:18.100 --> 00:10:21.500
<00:10:18.100>million <00:10:18.333>lines <00:10:18.566>of <00:10:18.800>code. <00:10:19.033>So <00:10:19.266>really <00:10:19.500>a

204
00:10:21.500 --> 00:10:24.400
<00:10:21.500>huge <00:10:21.655>part <00:10:21.811>of <00:10:21.966>the <00:10:22.122>system. <00:10:22.277>They <00:10:22.433>this <00:10:22.588>is <00:10:22.744>how <00:10:22.900>they

205
00:10:24.400 --> 00:10:25.600
<00:10:24.400>look <00:10:24.579>like <00:10:24.760>and <00:10:24.940>if <00:10:25.120>you <00:10:25.300>are <00:10:25.480>there

206
00:10:26.500 --> 00:10:29.100
<00:10:26.500>Well, <00:10:26.780>no <00:10:27.060>your <00:10:27.340>life <00:10:27.620>gets <00:10:27.900>difficult

207
00:10:29.100 --> 00:10:31.300
<00:10:29.100>and <00:10:29.275>on <00:10:29.450>a <00:10:29.625>higher <00:10:29.800>level <00:10:29.975>they <00:10:30.150>look <00:10:30.325>like <00:10:30.500>this.

208
00:10:32.400 --> 00:10:35.500
<00:10:32.400>This <00:10:32.600>is <00:10:32.800>a <00:10:33.000>system <00:10:33.199>of <00:10:33.400>10 <00:10:33.600>million <00:10:33.800>lines

209
00:10:35.500 --> 00:10:39.000
<00:10:35.500>of <00:10:35.655>code, <00:10:35.811>and <00:10:35.966>it's <00:10:36.122>the <00:10:36.277>whole <00:10:36.433>system <00:10:36.588>here <00:10:36.744>and <00:10:36.900>it's

210
00:10:38.700 --> 00:10:42.300
<00:10:38.700>divided <00:10:39.050>into <00:10:39.400>90 <00:10:39.750>modules, <00:10:40.100>which

211
00:10:41.300 --> 00:10:44.300
<00:10:41.300>are <00:10:41.533>all <00:10:41.766>here <00:10:42.000>these <00:10:42.233>90 <00:10:42.466>modules <00:10:42.699>and

212
00:10:44.300 --> 00:10:47.500
<00:10:44.300>you <00:10:44.533>see <00:10:44.766>all <00:10:45.000>these <00:10:45.233>relationships <00:10:45.466>between <00:10:45.699>them.

213
00:10:47.500 --> 00:10:50.800
<00:10:47.500>They <00:10:47.700>all <00:10:47.900>need <00:10:48.100>each <00:10:48.300>other. <00:10:48.500>This <00:10:48.700>this <00:10:48.900>is

214
00:10:50.800 --> 00:10:53.400
<00:10:50.800>a <00:10:50.974>big <00:10:51.150>ball <00:10:51.324>of <00:10:51.500>mud <00:10:51.675>a <00:10:51.849>real <00:10:52.025>one, <00:10:52.199>you

215
00:10:53.400 --> 00:10:56.500
<00:10:53.400>know, <00:10:53.600>because <00:10:53.800>this <00:10:54.000>this <00:10:54.199>is <00:10:54.400>programmed <00:10:54.600>code <00:10:54.800>in

216
00:10:56.500 --> 00:10:59.400
<00:10:56.500>there <00:10:56.733>the <00:10:56.966>structure <00:10:57.200>seen <00:10:57.433>as <00:10:57.666>in <00:10:57.900>a

217
00:10:59.400 --> 00:11:00.100
<00:10:59.400>diagram, <00:11:00.030>so

218
00:11:01.200 --> 00:11:04.400
<00:11:01.200>The <00:11:01.433>main <00:11:01.666>thing <00:11:01.900>the <00:11:02.133>main <00:11:02.366>thing <00:11:02.600>this

219
00:11:04.400 --> 00:11:07.800
<00:11:04.400>is <00:11:04.600>all <00:11:04.800>about <00:11:05.000>sustainable <00:11:05.199>software <00:11:05.400>architecture <00:11:05.600>domain <00:11:05.800>driven

220
00:11:07.800 --> 00:11:11.000
<00:11:07.800>design. <00:11:08.033>The <00:11:08.266>main <00:11:08.500>thing <00:11:08.733>is <00:11:08.966>to <00:11:09.199>reduce

221
00:11:10.100 --> 00:11:14.400
<00:11:10.100>dependencies <00:11:10.566>to <00:11:11.033>reduce <00:11:11.500>dependencies

222
00:11:13.400 --> 00:11:16.500
<00:11:13.400>between <00:11:13.866>on <00:11:14.333>whatever <00:11:14.800>level

223
00:11:16.500 --> 00:11:19.200
<00:11:16.500>you <00:11:16.733>are <00:11:16.966>between <00:11:17.200>the <00:11:17.433>modules <00:11:17.666>on <00:11:17.900>the

224
00:11:19.200 --> 00:11:22.100
<00:11:19.200>architectural <00:11:19.480>level <00:11:19.760>or <00:11:20.040>between <00:11:20.320>the <00:11:20.600>classes.

225
00:11:23.100 --> 00:11:27.300
<00:11:23.100>The <00:11:23.255>main <00:11:23.411>thing <00:11:23.566>of <00:11:23.722>the <00:11:23.877>whole <00:11:24.033>story <00:11:24.188>is <00:11:24.344>dependency <00:11:24.500>control.

226
00:11:26.300 --> 00:11:29.100
<00:11:26.300>This <00:11:26.579>is <00:11:26.859>where <00:11:27.140>we <00:11:27.420>have <00:11:27.699>to

227
00:11:29.100 --> 00:11:32.400
<00:11:29.100>go <00:11:29.275>and <00:11:29.450>this <00:11:29.625>means <00:11:29.800>something <00:11:29.975>that <00:11:30.150>you <00:11:30.325>all <00:11:30.500>should

228
00:11:32.400 --> 00:11:35.400
<00:11:32.400>know <00:11:32.574>you <00:11:32.750>should <00:11:32.925>all <00:11:33.100>know <00:11:33.275>that <00:11:33.449>we <00:11:33.625>want <00:11:33.800>in

229
00:11:35.400 --> 00:11:38.800
<00:11:35.400>our <00:11:35.680>software <00:11:35.959>architecture. <00:11:36.240>Hi <00:11:36.520>cohesion <00:11:36.800>and

230
00:11:38.800 --> 00:11:41.400
<00:11:38.800>lose <00:11:39.033>coupling. <00:11:39.266>This <00:11:39.500>is <00:11:39.733>the <00:11:39.966>main <00:11:40.199>point

231
00:11:41.400 --> 00:11:44.200
<00:11:41.400>within <00:11:41.680>the <00:11:41.959>modules <00:11:42.240>High <00:11:42.520>cohesion, <00:11:42.800>which

232
00:11:44.200 --> 00:11:48.000
<00:11:44.200>means <00:11:44.400>that <00:11:44.600>they <00:11:44.800>everything <00:11:45.000>in <00:11:45.200>there <00:11:45.400>strongly <00:11:45.600>coupled

233
00:11:47.200 --> 00:11:50.700
<00:11:47.200>working <00:11:47.433>together <00:11:47.666>to <00:11:47.900>do <00:11:48.133>something <00:11:48.366>and <00:11:48.600>this

234
00:11:50.700 --> 00:11:53.500
<00:11:50.700>is <00:11:50.900>this <00:11:51.100>ends <00:11:51.300>up <00:11:51.500>in <00:11:51.700>a <00:11:51.900>in <00:11:52.100>a

235
00:11:53.500 --> 00:11:57.600
<00:11:53.500>little <00:11:53.700>module <00:11:53.900>that <00:11:54.100>has <00:11:54.300>a <00:11:54.500>single <00:11:54.700>responsibility <00:11:54.900>and

236
00:11:56.600 --> 00:11:59.700
<00:11:56.600>everything <00:11:57.066>else <00:11:57.533>separated <00:11:58.000>into

237
00:11:59.700 --> 00:12:00.600
<00:11:59.700>other <00:12:00.510>modules.

238
00:12:01.100 --> 00:12:04.900
<00:12:01.100>and <00:12:01.275>outside <00:12:01.450>we <00:12:01.625>have <00:12:01.800>loose <00:12:01.975>coupling <00:12:02.150>which <00:12:02.325>means <00:12:02.500>low

239
00:12:04.900 --> 00:12:05.400
<00:12:04.900>coupling <00:12:05.350>as

240
00:12:06.100 --> 00:12:09.200
<00:12:06.100>As <00:12:06.275>little <00:12:06.450>coupling <00:12:06.625>as <00:12:06.800>possible <00:12:06.975>and <00:12:07.150>we <00:12:07.325>hide <00:12:07.500>the

241
00:12:09.200 --> 00:12:12.100
<00:12:09.200>information <00:12:09.375>in <00:12:09.550>there. <00:12:09.725>So <00:12:09.900>we <00:12:10.075>get <00:12:10.250>to <00:12:10.425>separation <00:12:10.600>of

242
00:12:12.100 --> 00:12:15.900
<00:12:12.100>concerns. <00:12:12.227>So <00:12:12.354>this <00:12:12.481>is <00:12:12.609>the <00:12:12.736>goal. <00:12:12.863>And <00:12:12.990>if <00:12:13.118>you <00:12:13.245>do <00:12:13.372>this <00:12:13.500>your

243
00:12:15.900 --> 00:12:18.600
<00:12:15.900>architecture <00:12:16.180>should <00:12:16.459>look <00:12:16.740>like <00:12:17.020>this <00:12:17.300>you

244
00:12:18.600 --> 00:12:19.000
<00:12:18.600>should <00:12:18.960>have

245
00:12:20.200 --> 00:12:23.500
<00:12:20.200>In <00:12:20.375>this <00:12:20.550>example <00:12:20.725>three <00:12:20.900>modules <00:12:21.075>in <00:12:21.250>there, <00:12:21.425>of <00:12:21.600>course

246
00:12:23.500 --> 00:12:27.100
<00:12:23.500>some <00:12:23.700>kind <00:12:23.900>of <00:12:24.100>layering <00:12:24.300>and <00:12:24.500>as <00:12:24.700>little <00:12:24.900>coupling

247
00:12:26.100 --> 00:12:29.500
<00:12:26.100>as <00:12:26.450>possible <00:12:26.800>between <00:12:27.150>those <00:12:27.500>modules

248
00:12:29.500 --> 00:12:32.700
<00:12:29.500>and <00:12:29.700>this <00:12:29.900>is <00:12:30.100>only <00:12:30.300>possible <00:12:30.500>in <00:12:30.700>my <00:12:30.900>experience.

249
00:12:32.700 --> 00:12:36.300
<00:12:32.700>If <00:12:32.933>you <00:12:33.166>have <00:12:33.400>a <00:12:33.633>domain <00:12:33.866>architecture, <00:12:34.100>this

250
00:12:35.300 --> 00:12:38.900
<00:12:35.300>is <00:12:35.579>what <00:12:35.859>we <00:12:36.140>need <00:12:36.420>an <00:12:36.699>architecture

251
00:12:38.900 --> 00:12:42.300
<00:12:38.900>with <00:12:39.133>high <00:12:39.366>cohesion <00:12:39.600>and <00:12:39.833>low <00:12:40.066>coupling <00:12:40.300>is

252
00:12:41.300 --> 00:12:44.700
<00:12:41.300>has <00:12:41.650>to <00:12:42.000>follow <00:12:42.349>the <00:12:42.699>domain

253
00:12:44.700 --> 00:12:47.200
<00:12:44.700>structures <00:12:44.980>and <00:12:45.260>I <00:12:45.540>will <00:12:45.820>show <00:12:46.100>you

254
00:12:47.200 --> 00:12:49.200
<00:12:47.200>how <00:12:47.550>you <00:12:47.900>can <00:12:48.250>achieve <00:12:48.600>this.

255
00:12:51.700 --> 00:12:54.700
<00:12:51.700>In <00:12:51.900>general <00:12:52.100>when <00:12:52.300>I <00:12:52.500>look <00:12:52.700>with <00:12:52.900>people <00:12:53.100>at

256
00:12:54.700 --> 00:12:57.400
<00:12:54.700>their <00:12:54.980>architecture, <00:12:55.260>I <00:12:55.540>find <00:12:55.820>something <00:12:56.100>like

257
00:12:57.400 --> 00:12:57.600
this.

258
00:13:00.200 --> 00:13:02.100
<00:13:00.200>I <00:13:00.666>find <00:13:01.133>modules. <00:13:01.600>Yes.

259
00:13:03.100 --> 00:13:06.700
<00:13:03.100>people <00:13:03.300>are <00:13:03.500>able <00:13:03.700>to <00:13:03.900>separate <00:13:04.100>features <00:13:04.300>into <00:13:04.500>different

260
00:13:06.700 --> 00:13:07.900
<00:13:06.700>modules, <00:13:07.780>but

261
00:13:08.800 --> 00:13:11.900
<00:13:08.800>The <00:13:09.079>domain <00:13:09.359>model <00:13:09.640>underneath <00:13:09.920>is <00:13:10.199>one

262
00:13:11.900 --> 00:13:14.800
<00:13:11.900>thing <00:13:12.250>one <00:13:12.600>thing <00:13:12.949>altogether. <00:13:13.300>I

263
00:13:14.800 --> 00:13:17.600
<00:13:14.800>will <00:13:15.033>show <00:13:15.266>you <00:13:15.500>this <00:13:15.733>with <00:13:15.966>a <00:13:16.199>real

264
00:13:17.600 --> 00:13:20.700
<00:13:17.600>example <00:13:17.775>from <00:13:17.950>a <00:13:18.125>tool. <00:13:18.300>I <00:13:18.475>can <00:13:18.650>answer <00:13:18.825>all <00:13:19.000>two

265
00:13:20.700 --> 00:13:23.300
<00:13:20.700>questions <00:13:20.933>afterwards. <00:13:21.166>Okay. <00:13:21.400>Don't <00:13:21.633>worry. <00:13:21.866>I <00:13:22.100>will

266
00:13:23.300 --> 00:13:26.600
<00:13:23.300>tell <00:13:23.455>you <00:13:23.611>whatever <00:13:23.766>tool <00:13:23.922>I <00:13:24.077>use <00:13:24.233>there's <00:13:24.388>no <00:13:24.544>problem <00:13:24.699>with

267
00:13:26.600 --> 00:13:29.800
<00:13:26.600>that. <00:13:26.775>Okay. <00:13:26.950>So <00:13:27.125>what <00:13:27.300>do <00:13:27.475>you <00:13:27.650>see <00:13:27.825>here? <00:13:28.000>This

268
00:13:29.800 --> 00:13:32.300
<00:13:29.800>is <00:13:30.079>a <00:13:30.359>Java <00:13:30.640>system <00:13:30.920>with <00:13:31.199>a

269
00:13:32.300 --> 00:13:35.300
<00:13:32.300>hundred <00:13:32.455>with <00:13:32.611>a <00:13:32.766>million <00:13:32.922>lines <00:13:33.077>of <00:13:33.233>code <00:13:33.388>and <00:13:33.544>the <00:13:33.699>story

270
00:13:35.300 --> 00:13:38.400
<00:13:35.300>was <00:13:35.500>was <00:13:35.699>funny <00:13:35.900>because <00:13:36.099>they <00:13:36.300>called <00:13:36.500>me <00:13:36.699>and

271
00:13:38.400 --> 00:13:41.700
<00:13:38.400>they <00:13:38.633>said <00:13:38.866>carola. <00:13:39.100>Could <00:13:39.333>you <00:13:39.566>come <00:13:39.800>we

272
00:13:41.700 --> 00:13:44.400
<00:13:41.700>have <00:13:41.933>a <00:13:42.166>million <00:13:42.400>Java <00:13:42.633>code <00:13:42.866>a <00:13:43.100>million

273
00:13:44.400 --> 00:13:45.200
<00:13:44.400>lines <00:13:44.640>of <00:13:44.880>java <00:13:45.120>code.

274
00:13:45.900 --> 00:13:47.200
<00:13:45.900>And <00:13:46.192>we <00:13:46.485>have <00:13:46.777>a <00:13:47.070>problem.

275
00:13:48.700 --> 00:13:51.500
<00:13:48.700>We <00:13:48.900>want <00:13:49.100>this <00:13:49.300>system <00:13:49.500>to <00:13:49.700>be <00:13:49.900>divided <00:13:50.100>into

276
00:13:51.500 --> 00:13:52.700
microservices.

277
00:13:53.700 --> 00:13:55.000
<00:13:53.700>And <00:13:54.090>I <00:13:54.480>said, <00:13:54.870>okay.

278
00:13:56.200 --> 00:13:58.000
<00:13:56.200>What <00:13:56.433>kind <00:13:56.666>of <00:13:56.900>architecture <00:13:57.133>do <00:13:57.366>you <00:13:57.600>have?

279
00:13:59.200 --> 00:14:02.200
<00:13:59.200>And <00:13:59.433>generally <00:13:59.666>people <00:13:59.900>tell <00:14:00.133>me <00:14:00.366>Well, <00:14:00.600>we

280
00:14:02.200 --> 00:14:05.400
<00:14:02.200>have <00:14:02.433>layers <00:14:02.666>whatsoever. <00:14:02.900>And <00:14:03.133>then <00:14:03.366>I <00:14:03.600>know

281
00:14:05.400 --> 00:14:08.300
<00:14:05.400>okay <00:14:05.750>a <00:14:06.100>domain <00:14:06.449>cut <00:14:06.800>is

282
00:14:08.300 --> 00:14:11.700
<00:14:08.300>difficult, <00:14:08.500>but <00:14:08.699>they <00:14:08.900>said <00:14:09.099>we <00:14:09.300>have <00:14:09.500>use <00:14:09.699>cases.

283
00:14:13.600 --> 00:14:16.600
<00:14:13.600>This <00:14:13.775>is <00:14:13.950>our <00:14:14.125>main <00:14:14.300>structure <00:14:14.475>and <00:14:14.650>I <00:14:14.825>thought <00:14:15.000>oh

284
00:14:16.600 --> 00:14:20.000
<00:14:16.600>great <00:14:16.880>use <00:14:17.160>cases <00:14:17.440>this <00:14:17.720>then <00:14:18.000>this

285
00:14:19.300 --> 00:14:22.400
<00:14:19.300>might <00:14:19.500>be <00:14:19.699>possible <00:14:19.900>to <00:14:20.099>divide <00:14:20.300>this <00:14:20.500>thing <00:14:20.699>into

286
00:14:22.400 --> 00:14:25.500
<00:14:22.400>separate <00:14:22.750>modules <00:14:23.100>with <00:14:23.449>loose <00:14:23.800>coupling

287
00:14:25.500 --> 00:14:26.000
<00:14:25.500>and <00:14:25.725>all <00:14:25.950>that.

288
00:14:27.300 --> 00:14:30.400
<00:14:27.300>And <00:14:27.474>over <00:14:27.650>here, <00:14:27.824>you <00:14:28.000>see <00:14:28.175>the <00:14:28.349>use <00:14:28.525>cases. <00:14:28.699>There

289
00:14:30.400 --> 00:14:33.600
<00:14:30.400>was <00:14:30.633>my <00:14:30.866>one <00:14:31.100>called <00:14:31.333>mailing <00:14:31.566>one <00:14:31.800>called

290
00:14:33.600 --> 00:14:36.700
<00:14:33.600>import <00:14:34.066>export <00:14:34.533>remove <00:14:35.000>startup

291
00:14:36.700 --> 00:14:39.300
<00:14:36.700>and <00:14:36.980>so <00:14:37.260>on <00:14:37.540>and <00:14:37.820>these <00:14:38.100>are

292
00:14:39.300 --> 00:14:43.700
<00:14:39.300>these <00:14:39.766>rectangles <00:14:40.233>are <00:14:40.699>are

293
00:14:42.700 --> 00:14:45.500
<00:14:42.700>artifacts <00:14:42.980>that <00:14:43.260>you <00:14:43.540>can <00:14:43.820>create <00:14:44.100>in

294
00:14:45.500 --> 00:14:48.300
<00:14:45.500>the <00:14:45.700>tool. <00:14:45.900>And <00:14:46.100>inside <00:14:46.300>there <00:14:46.500>is <00:14:46.700>the <00:14:46.900>real

295
00:14:48.300 --> 00:14:51.900
<00:14:48.300>source <00:14:48.474>code <00:14:48.650>the <00:14:48.824>package <00:14:49.000>tree. <00:14:49.175>So <00:14:49.349>if <00:14:49.525>one <00:14:49.699>clicks

296
00:14:51.900 --> 00:14:54.400
<00:14:51.900>on <00:14:52.133>this <00:14:52.366>plus <00:14:52.600>here <00:14:52.833>the <00:14:53.066>package <00:14:53.300>tree

297
00:14:54.400 --> 00:14:57.800
<00:14:54.400>would <00:14:54.527>appear <00:14:54.654>and <00:14:54.781>for <00:14:54.909>the <00:14:55.036>others <00:14:55.163>as <00:14:55.290>well. <00:14:55.418>So <00:14:55.545>it's <00:14:55.672>an <00:14:55.800>abstract

298
00:14:57.800 --> 00:15:00.900
<00:14:57.800>view <00:14:58.033>on <00:14:58.266>the <00:14:58.500>source <00:14:58.733>code <00:14:58.966>and <00:14:59.199>over

299
00:15:00.900 --> 00:15:04.600
<00:15:00.900>here. <00:15:01.180>You <00:15:01.459>see <00:15:01.740>the <00:15:02.020>same <00:15:02.300>elements,

300
00:15:03.600 --> 00:15:06.700
<00:15:03.600>but <00:15:03.950>you <00:15:04.300>see <00:15:04.650>how <00:15:05.000>these

301
00:15:06.700 --> 00:15:09.100
<00:15:06.700>these <00:15:07.166>modules <00:15:07.633>depend <00:15:08.100>on

302
00:15:09.100 --> 00:15:13.100
<00:15:09.100>each <00:15:09.227>other <00:15:09.354>these <00:15:09.481>use <00:15:09.609>cases. <00:15:09.736>So <00:15:09.863>in <00:15:09.990>the <00:15:10.118>mailing <00:15:10.245>use <00:15:10.372>case, <00:15:10.500>there

303
00:15:12.100 --> 00:15:15.800
<00:15:12.100>are <00:15:12.380>some <00:15:12.660>classes <00:15:12.940>that <00:15:13.220>need <00:15:13.500>something

304
00:15:15.800 --> 00:15:18.800
<00:15:15.800>from <00:15:16.033>down <00:15:16.266>here <00:15:16.500>the <00:15:16.733>green <00:15:16.966>Arc <00:15:17.199>the

305
00:15:18.800 --> 00:15:21.800
<00:15:18.800>green <00:15:19.150>Arc <00:15:19.500>here <00:15:19.849>indicates <00:15:20.199>that

306
00:15:21.800 --> 00:15:24.200
<00:15:21.800>these <00:15:22.033>this <00:15:22.266>they <00:15:22.500>are <00:15:22.733>classes <00:15:22.966>and <00:15:23.199>they

307
00:15:24.200 --> 00:15:26.800
<00:15:24.200>use <00:15:24.375>something <00:15:24.550>down <00:15:24.725>here <00:15:24.900>and <00:15:25.075>as <00:15:25.250>well <00:15:25.425>down <00:15:25.600>here.

308
00:15:27.200 --> 00:15:31.300
<00:15:27.200>And <00:15:27.340>the <00:15:27.480>red <00:15:27.620>ones <00:15:27.760>the <00:15:27.900>colors <00:15:28.040>are <00:15:28.180>not <00:15:28.320>so <00:15:28.460>important <00:15:28.600>indicate

309
00:15:30.300 --> 00:15:34.000
<00:15:30.300>that <00:15:30.650>the <00:15:31.000>the <00:15:31.349>classes <00:15:31.699>in

310
00:15:33.100 --> 00:15:35.800
<00:15:33.100>here <00:15:33.380>use <00:15:33.660>something <00:15:33.940>from <00:15:34.220>up <00:15:34.500>here.

311
00:15:36.300 --> 00:15:39.300
<00:15:36.300>So <00:15:36.427>we <00:15:36.554>did <00:15:36.681>this <00:15:36.809>and <00:15:36.936>if <00:15:37.063>you <00:15:37.190>look <00:15:37.318>at <00:15:37.445>that, <00:15:37.572>you <00:15:37.699>could

312
00:15:39.300 --> 00:15:42.700
<00:15:39.300>you <00:15:39.500>could <00:15:39.699>think <00:15:39.900>that <00:15:40.099>maybe <00:15:40.300>these <00:15:40.500>three <00:15:40.699>are

313
00:15:42.700 --> 00:15:45.400
<00:15:42.700>a <00:15:42.980>microservice <00:15:43.260>and <00:15:43.540>maybe <00:15:43.820>these <00:15:44.100>two

314
00:15:45.400 --> 00:15:48.600
<00:15:45.400>but <00:15:45.574>then <00:15:45.750>if <00:15:45.925>you <00:15:46.100>go <00:15:46.275>down <00:15:46.449>you <00:15:46.625>see <00:15:46.800>something

315
00:15:48.600 --> 00:15:51.100
<00:15:48.600>here <00:15:48.950>that <00:15:49.300>is <00:15:49.650>called <00:15:50.000>model.

316
00:15:52.400 --> 00:15:55.500
<00:15:52.400>And <00:15:52.574>I <00:15:52.750>said <00:15:52.925>to <00:15:53.100>the <00:15:53.275>architect. <00:15:53.449>Oh, <00:15:53.625>well, <00:15:53.800>what

317
00:15:55.500 --> 00:15:56.000
<00:15:55.500>is <00:15:55.950>this?

318
00:15:57.200 --> 00:16:00.300
<00:15:57.200>What <00:15:57.327>kind <00:15:57.454>of <00:15:57.581>use <00:15:57.709>case <00:15:57.836>and <00:15:57.963>he <00:15:58.090>said <00:15:58.218>no. <00:15:58.345>No, <00:15:58.472>this <00:15:58.600>is

319
00:16:00.300 --> 00:16:03.700
<00:16:00.300>not <00:16:00.455>a <00:16:00.611>use <00:16:00.766>case. <00:16:00.922>This <00:16:01.077>is <00:16:01.233>the <00:16:01.388>domain <00:16:01.544>model <00:16:01.699>basic

320
00:16:03.700 --> 00:16:08.200
<00:16:03.700>classes, <00:16:04.050>like <00:16:04.400>customer <00:16:04.750>product <00:16:05.100>account.

321
00:16:06.200 --> 00:16:09.400
<00:16:06.200>Whatever <00:16:06.900>you <00:16:07.600>have.

322
00:16:09.400 --> 00:16:12.600
<00:16:09.400>Oh <00:16:09.750>I <00:16:10.100>said <00:16:10.449>well <00:16:10.800>this

323
00:16:12.600 --> 00:16:15.400
<00:16:12.600>will <00:16:12.775>not <00:16:12.950>work <00:16:13.125>out. <00:16:13.300>If <00:16:13.475>you <00:16:13.650>want <00:16:13.825>to <00:16:14.000>cut

324
00:16:15.400 --> 00:16:19.000
<00:16:15.400>it <00:16:15.750>into <00:16:16.100>separate <00:16:16.449>microservices. <00:16:16.800>You

325
00:16:18.200 --> 00:16:21.600
<00:16:18.200>have <00:16:18.400>to <00:16:18.600>we <00:16:18.800>have <00:16:19.000>to <00:16:19.200>sort <00:16:19.400>them <00:16:19.600>the

326
00:16:21.600 --> 00:16:24.300
<00:16:21.600>classes <00:16:21.800>in <00:16:22.000>this <00:16:22.200>in <00:16:22.400>this <00:16:22.600>in <00:16:22.800>this <00:16:23.000>part

327
00:16:24.300 --> 00:16:27.500
<00:16:24.300>here. <00:16:24.427>We <00:16:24.554>have <00:16:24.681>to <00:16:24.809>sort <00:16:24.936>them <00:16:25.063>into <00:16:25.190>the <00:16:25.318>other <00:16:25.445>modules. <00:16:25.572>You <00:16:25.699>think

328
00:16:27.500 --> 00:16:28.200
<00:16:27.500>we <00:16:27.710>can <00:16:27.920>do <00:16:28.130>that.

329
00:16:29.900 --> 00:16:32.300
<00:16:29.900>Oops, <00:16:30.180>we <00:16:30.459>can <00:16:30.740>try <00:16:31.020>he <00:16:31.300>said

330
00:16:32.300 --> 00:16:35.300
<00:16:32.300>and <00:16:32.474>we <00:16:32.650>started <00:16:32.824>to <00:16:33.000>move <00:16:33.175>classes <00:16:33.349>from <00:16:33.525>down <00:16:33.699>here

331
00:16:35.300 --> 00:16:38.300
<00:16:35.300>into <00:16:35.500>the <00:16:35.699>other <00:16:35.900>into <00:16:36.099>the <00:16:36.300>other <00:16:36.500>modules <00:16:36.699>and

332
00:16:38.300 --> 00:16:41.600
<00:16:38.300>I <00:16:38.455>think <00:16:38.611>we <00:16:38.766>stopped <00:16:38.922>at <00:16:39.077>calculation <00:16:39.233>because <00:16:39.388>then <00:16:39.544>the <00:16:39.699>thing

333
00:16:41.600 --> 00:16:42.900
<00:16:41.600>looked <00:16:42.185>like <00:16:42.770>that.

334
00:16:47.100 --> 00:16:48.500
<00:16:47.100>And <00:16:47.310>this <00:16:47.520>is <00:16:47.730>this <00:16:47.940>is <00:16:48.150>the <00:16:48.360>point.

335
00:16:49.200 --> 00:16:53.000
<00:16:49.200>You <00:16:49.400>know <00:16:49.600>the <00:16:49.800>domain <00:16:50.000>model <00:16:50.200>is <00:16:50.400>connected <00:16:50.600>with

336
00:16:52.900 --> 00:16:55.200
<00:16:52.900>everything <00:16:53.180>and <00:16:53.459>this <00:16:53.740>is <00:16:54.020>what <00:16:54.300>you

337
00:16:55.200 --> 00:16:58.300
<00:16:55.200>find <00:16:55.400>a <00:16:55.600>lot <00:16:55.800>in <00:16:56.000>Old <00:16:56.200>systems <00:16:56.400>to <00:16:56.600>make

338
00:16:58.300 --> 00:17:01.300
<00:16:58.300>it <00:16:58.500>easy <00:16:58.699>to <00:16:58.900>understand. <00:16:59.099>What <00:16:59.300>do <00:16:59.500>we <00:16:59.699>have?

339
00:17:01.300 --> 00:17:04.800
<00:17:01.300>We <00:17:01.650>have <00:17:02.000>different <00:17:02.349>modules. <00:17:02.699>This

340
00:17:04.800 --> 00:17:07.800
<00:17:04.800>is <00:17:05.000>a <00:17:05.200>bank <00:17:05.399>example <00:17:05.599>and <00:17:05.800>down <00:17:06.000>here <00:17:06.200>our

341
00:17:07.800 --> 00:17:11.000
<00:17:07.800>classes <00:17:08.079>account <00:17:08.359>customer <00:17:08.639>credit <00:17:08.919>security <00:17:09.200>and

342
00:17:10.600 --> 00:17:14.000
<00:17:10.599>everybody <00:17:10.949>is <00:17:11.300>using <00:17:11.649>everybody <00:17:12.000>and

343
00:17:13.300 --> 00:17:16.500
<00:17:13.300>where <00:17:13.474>we <00:17:13.649>want <00:17:13.825>to <00:17:14.000>end <00:17:14.175>up <00:17:14.349>if <00:17:14.524>we <00:17:14.700>really

344
00:17:16.500 --> 00:17:19.700
<00:17:16.500>understand <00:17:16.675>what <00:17:16.849>domain <00:17:17.025>driven <00:17:17.200>design <00:17:17.375>is <00:17:17.550>telling <00:17:17.724>us <00:17:17.900>is

345
00:17:19.700 --> 00:17:20.400
this

346
00:17:21.500 --> 00:17:25.500
<00:17:21.500>We <00:17:21.733>want <00:17:21.966>to <00:17:22.200>have <00:17:22.433>separate <00:17:22.666>modules <00:17:22.900>with

347
00:17:24.500 --> 00:17:28.400
<00:17:24.500>their <00:17:24.966>own <00:17:25.433>domain <00:17:25.900>classes

348
00:17:27.400 --> 00:17:28.900
<00:17:27.400>in <00:17:28.750>there.

349
00:17:29.600 --> 00:17:32.600
<00:17:29.600>So <00:17:29.755>over <00:17:29.911>here <00:17:30.066>is <00:17:30.222>the <00:17:30.377>account <00:17:30.533>and <00:17:30.688>the <00:17:30.844>customer <00:17:31.000>but

350
00:17:32.600 --> 00:17:35.500
<00:17:32.600>here <00:17:32.833>is <00:17:33.066>a <00:17:33.300>credit <00:17:33.533>customer <00:17:33.766>and <00:17:34.000>a

351
00:17:35.500 --> 00:17:38.300
<00:17:35.500>credit <00:17:35.700>account <00:17:35.900>and <00:17:36.100>a <00:17:36.300>service <00:17:36.500>account <00:17:36.700>in <00:17:36.900>the

352
00:17:38.300 --> 00:17:41.600
<00:17:38.300>service <00:17:38.440>customer. <00:17:38.580>This <00:17:38.720>is <00:17:38.860>where <00:17:39.000>we <00:17:39.139>want <00:17:39.280>to <00:17:39.419>go. <00:17:39.560>This <00:17:39.700>is

353
00:17:41.600 --> 00:17:44.400
<00:17:41.600>what <00:17:41.774>domain <00:17:41.949>driven <00:17:42.125>design <00:17:42.300>tells <00:17:42.475>us <00:17:42.649>and <00:17:42.824>it's <00:17:43.000>really

354
00:17:44.400 --> 00:17:47.600
<00:17:44.400>hard <00:17:44.633>for <00:17:44.866>many <00:17:45.100>people <00:17:45.333>who <00:17:45.566>learn <00:17:45.800>that

355
00:17:47.600 --> 00:17:50.600
<00:17:47.600>we <00:17:47.833>have <00:17:48.066>to <00:17:48.300>reuse. <00:17:48.533>Whatever <00:17:48.766>is <00:17:49.000>there.

356
00:17:50.600 --> 00:17:53.600
<00:17:50.600>This <00:17:50.833>is <00:17:51.066>not <00:17:51.300>the <00:17:51.533>truth. <00:17:51.766>If <00:17:52.000>you

357
00:17:53.600 --> 00:17:56.600
<00:17:53.600>want <00:17:53.833>to <00:17:54.066>divide <00:17:54.300>your <00:17:54.533>system <00:17:54.766>into <00:17:55.000>proper

358
00:17:56.600 --> 00:18:00.000
<00:17:56.600>modules <00:17:56.879>following <00:17:57.159>the <00:17:57.439>domain <00:17:57.719>and <00:17:58.000>so

359
00:17:59.400 --> 00:18:02.600
<00:17:59.400>what <00:17:59.575>is <00:17:59.750>the <00:17:59.925>goal <00:18:00.100>the <00:18:00.275>goal <00:18:00.450>is <00:18:00.625>we <00:18:00.800>want

360
00:18:02.600 --> 00:18:02.600
to

361
00:18:03.900 --> 00:18:06.500
<00:18:03.900>We <00:18:04.180>need <00:18:04.460>to <00:18:04.740>to <00:18:05.020>divide <00:18:05.300>our

362
00:18:06.500 --> 00:18:09.600
<00:18:06.500>domain <00:18:06.780>into <00:18:07.060>subdomains <00:18:07.340>with <00:18:07.620>small <00:18:07.900>models.

363
00:18:11.100 --> 00:18:15.100
<00:18:11.100>Separate <00:18:11.379>models <00:18:11.659>that <00:18:11.939>allow <00:18:12.219>independent <00:18:12.500>changes

364
00:18:14.100 --> 00:18:17.400
<00:18:14.100>you <00:18:14.379>can <00:18:14.659>see <00:18:14.939>the <00:18:15.219>possibility <00:18:15.500>there.

365
00:18:17.400 --> 00:18:20.800
<00:18:17.400>You <00:18:17.575>can <00:18:17.750>have <00:18:17.925>independent <00:18:18.100>changes <00:18:18.275>in <00:18:18.450>these <00:18:18.625>very <00:18:18.800>small

366
00:18:20.800 --> 00:18:23.700
<00:18:20.800>domain <00:18:21.266>models <00:18:21.733>you <00:18:22.200>can

367
00:18:24.800 --> 00:18:28.000
<00:18:24.800>have <00:18:25.149>in <00:18:25.500>each <00:18:25.850>module <00:18:26.200>a

368
00:18:27.800 --> 00:18:30.700
<00:18:27.800>small <00:18:28.080>set <00:18:28.360>of <00:18:28.639>requirements. <00:18:28.919>So <00:18:29.200>you

369
00:18:30.700 --> 00:18:34.400
<00:18:30.700>have <00:18:30.933>high <00:18:31.166>cohesion <00:18:31.400>in <00:18:31.633>there <00:18:31.866>and <00:18:32.100>you

370
00:18:33.400 --> 00:18:36.200
<00:18:33.400>will <00:18:33.750>have <00:18:34.100>clear <00:18:34.450>borders <00:18:34.800>because

371
00:18:36.200 --> 00:18:40.300
<00:18:36.200>in <00:18:36.375>each <00:18:36.550>of <00:18:36.725>these <00:18:36.900>there <00:18:37.075>is <00:18:37.250>just <00:18:37.425>one <00:18:37.600>domain

372
00:18:39.300 --> 00:18:42.900
<00:18:39.300>part <00:18:39.766>implemented <00:18:40.233>and <00:18:40.700>of

373
00:18:42.900 --> 00:18:45.700
<00:18:42.900>course <00:18:43.180>you <00:18:43.460>can <00:18:43.740>have <00:18:44.020>one <00:18:44.300>team

374
00:18:45.700 --> 00:18:48.600
<00:18:45.700>per <00:18:45.900>domain <00:18:46.100>module <00:18:46.300>that <00:18:46.500>is <00:18:46.700>really <00:18:46.900>responsible <00:18:47.100>for

375
00:18:48.600 --> 00:18:51.600
<00:18:48.600>that <00:18:48.800>and <00:18:49.000>does <00:18:49.199>everything <00:18:49.399>in <00:18:49.600>there <00:18:49.800>with <00:18:50.000>its

376
00:18:51.600 --> 00:18:55.200
<00:18:51.600>own <00:18:51.774>module <00:18:51.949>and <00:18:52.125>it <00:18:52.300>doesn't <00:18:52.475>have <00:18:52.649>to <00:18:52.824>relate <00:18:53.000>to

377
00:18:55.200 --> 00:18:58.400
<00:18:55.200>all <00:18:55.480>the <00:18:55.760>others. <00:18:56.040>We <00:18:56.320>the <00:18:56.600>other

378
00:18:58.400 --> 00:19:01.400
<00:18:58.400>day. <00:18:58.555>I <00:18:58.711>I <00:18:58.866>was <00:18:59.022>called <00:18:59.177>by <00:18:59.333>a <00:18:59.488>client <00:18:59.644>and <00:18:59.800>he

379
00:19:01.400 --> 00:19:04.600
<00:19:01.400>said <00:19:01.540>kahula, <00:19:01.680>could <00:19:01.820>you <00:19:01.960>come <00:19:02.100>we <00:19:02.240>have <00:19:02.380>a <00:19:02.520>problem <00:19:02.660>with <00:19:02.800>our

380
00:19:04.600 --> 00:19:07.500
<00:19:04.600>microservice <00:19:05.066>architecture? <00:19:05.533>And <00:19:06.000>I

381
00:19:07.500 --> 00:19:09.300
<00:19:07.500>said, <00:19:07.780>yes, <00:19:08.060>what <00:19:08.340>do <00:19:08.620>you <00:19:08.900>have?

382
00:19:10.200 --> 00:19:14.200
<00:19:10.200>Well, <00:19:10.550>we <00:19:10.900>have <00:19:11.250>270 <00:19:11.600>microservices.

383
00:19:17.900 --> 00:19:20.600
<00:19:17.900>and <00:19:18.133>well, <00:19:18.366>what's <00:19:18.600>the <00:19:18.833>problem <00:19:19.066>and <00:19:19.300>I

384
00:19:20.600 --> 00:19:20.900
<00:19:20.600>said <00:19:20.870>well

385
00:19:21.600 --> 00:19:24.700
<00:19:21.600>whenever <00:19:21.833>we <00:19:22.066>want <00:19:22.300>to <00:19:22.533>change <00:19:22.766>something <00:19:23.000>in

386
00:19:24.700 --> 00:19:25.500
<00:19:24.700>the <00:19:25.420>database.

387
00:19:26.700 --> 00:19:29.900
<00:19:26.700>All <00:19:26.875>the <00:19:27.050>teams <00:19:27.225>have <00:19:27.400>to <00:19:27.575>come <00:19:27.750>together <00:19:27.925>and <00:19:28.100>discuss

388
00:19:29.900 --> 00:19:30.200
it.

389
00:19:32.500 --> 00:19:35.500
<00:19:32.500>And <00:19:32.640>then <00:19:32.780>we <00:19:32.920>looked <00:19:33.060>at <00:19:33.200>it <00:19:33.340>and <00:19:33.480>we <00:19:33.620>found <00:19:33.760>of <00:19:33.900>course

390
00:19:35.500 --> 00:19:36.600
<00:19:35.500>a <00:19:35.995>model <00:19:36.490>jar.

391
00:19:38.300 --> 00:19:41.200
<00:19:38.300>Everybody <00:19:38.475>was <00:19:38.649>working <00:19:38.825>on <00:19:39.000>the <00:19:39.175>same <00:19:39.350>database. <00:19:39.524>Of <00:19:39.700>course,

392
00:19:41.200 --> 00:19:44.200
<00:19:41.200>then <00:19:41.327>you <00:19:41.454>have <00:19:41.581>to <00:19:41.709>do <00:19:41.836>it. <00:19:41.963>But <00:19:42.090>this <00:19:42.218>is <00:19:42.345>this <00:19:42.472>is <00:19:42.600>where

393
00:19:44.200 --> 00:19:48.400
<00:19:44.200>we <00:19:44.355>want <00:19:44.511>to <00:19:44.666>get <00:19:44.822>over <00:19:44.977>into <00:19:45.133>a <00:19:45.288>new <00:19:45.444>better <00:19:45.600>future

394
00:19:47.400 --> 00:19:50.200
<00:19:47.400>and <00:19:47.680>domain <00:19:47.960>driven <00:19:48.240>design <00:19:48.520>tells <00:19:48.800>us

395
00:19:50.200 --> 00:19:53.500
<00:19:50.200>how <00:19:50.400>to <00:19:50.600>do <00:19:50.800>that <00:19:51.000>so <00:19:51.200>many <00:19:51.400>design <00:19:51.600>and

396
00:19:53.500 --> 00:19:57.300
<00:19:53.500>this <00:19:53.675>is <00:19:53.850>in <00:19:54.025>the <00:19:54.200>book <00:19:54.375>from <00:19:54.550>page <00:19:54.725>140. <00:19:54.900>Okay.

397
00:19:57.300 --> 00:20:00.400
<00:19:57.300>If <00:19:57.500>ever <00:19:57.700>you <00:19:57.899>start, <00:19:58.100>there <00:19:58.300>there <00:19:58.500>is <00:19:58.700>this

398
00:20:00.400 --> 00:20:03.100
<00:20:00.400>part <00:20:00.633>of <00:20:00.866>the <00:20:01.100>book <00:20:01.333>about <00:20:01.566>strategic <00:20:01.800>design.

399
00:20:04.700 --> 00:20:07.700
<00:20:04.700>And <00:20:04.933>Eric <00:20:05.166>even <00:20:05.400>says <00:20:05.633>we <00:20:05.866>have <00:20:06.100>software

400
00:20:07.700 --> 00:20:10.300
<00:20:07.700>systems <00:20:07.900>and <00:20:08.100>we <00:20:08.300>have <00:20:08.500>a <00:20:08.700>domain <00:20:08.900>and <00:20:09.100>if

401
00:20:10.300 --> 00:20:14.300
<00:20:10.300>we <00:20:10.440>look <00:20:10.580>at <00:20:10.720>that, <00:20:10.860>we <00:20:11.000>have <00:20:11.139>to <00:20:11.280>find <00:20:11.419>the <00:20:11.560>subdomains <00:20:11.700>in

402
00:20:14.300 --> 00:20:17.700
<00:20:14.300>the <00:20:14.580>domain <00:20:14.860>and <00:20:15.139>decompose <00:20:15.419>our <00:20:15.700>software

403
00:20:17.700 --> 00:20:21.300
<00:20:17.700>accordingly <00:20:18.050>and <00:20:18.400>set <00:20:18.750>explicit <00:20:19.100>boundaries

404
00:20:20.300 --> 00:20:24.500
<00:20:20.300>and <00:20:20.580>he <00:20:20.860>called <00:20:21.139>this <00:20:21.419>things <00:20:21.700>bounded

405
00:20:23.500 --> 00:20:26.400
<00:20:23.500>contexts. <00:20:23.780>This <00:20:24.060>is <00:20:24.340>why <00:20:24.620>he <00:20:24.900>calls

406
00:20:26.400 --> 00:20:29.400
<00:20:26.400>them <00:20:26.555>that <00:20:26.711>way <00:20:26.866>they <00:20:27.022>are <00:20:27.177>in <00:20:27.333>the <00:20:27.488>software. <00:20:27.644>So <00:20:27.800>for

407
00:20:29.400 --> 00:20:31.500
<00:20:29.400>every <00:20:29.633>subdomain <00:20:29.866>there <00:20:30.100>is <00:20:30.333>a <00:20:30.566>bounded <00:20:30.800>context

408
00:20:32.500 --> 00:20:36.100
<00:20:32.500>and <00:20:32.700>the <00:20:32.900>team <00:20:33.100>organization <00:20:33.300>is <00:20:33.500>the <00:20:33.700>same <00:20:33.900>and

409
00:20:35.100 --> 00:20:38.800
<00:20:35.100>the <00:20:35.333>goal <00:20:35.566>in <00:20:35.800>all <00:20:36.033>this <00:20:36.266>is <00:20:36.500>high

410
00:20:38.800 --> 00:20:41.500
<00:20:38.800>cohesion <00:20:39.080>and <00:20:39.360>lose <00:20:39.639>coupling. <00:20:39.919>This <00:20:40.200>is

411
00:20:41.500 --> 00:20:44.100
<00:20:41.500>the <00:20:41.700>goal <00:20:41.900>behind <00:20:42.100>all <00:20:42.300>of <00:20:42.500>this. <00:20:42.700>How <00:20:42.900>do

412
00:20:44.100 --> 00:20:44.600
<00:20:44.100>we <00:20:44.324>get <00:20:44.550>there?

413
00:20:45.700 --> 00:20:48.400
<00:20:45.700>Well <00:20:45.900>in <00:20:46.100>the <00:20:46.300>main <00:20:46.500>driven <00:20:46.700>design <00:20:46.900>there <00:20:47.100>are

414
00:20:48.400 --> 00:20:51.700
<00:20:48.400>several <00:20:48.680>techniques <00:20:48.960>how <00:20:49.240>you <00:20:49.520>get <00:20:49.800>to

415
00:20:51.700 --> 00:20:54.400
<00:20:51.700>this <00:20:51.980>point <00:20:52.260>to <00:20:52.540>divide <00:20:52.820>your <00:20:53.100>software

416
00:20:54.400 --> 00:20:57.400
<00:20:54.400>according <00:20:54.750>to <00:20:55.100>subdomains. <00:20:55.450>There <00:20:55.800>is

417
00:20:57.400 --> 00:21:00.200
<00:20:57.400>event <00:20:57.633>storming. <00:20:57.866>You <00:20:58.100>might <00:20:58.333>know. <00:20:58.566>I <00:20:58.800>don't

418
00:21:00.200 --> 00:21:03.300
<00:21:00.200>know <00:21:00.400>if <00:21:00.600>there <00:21:00.800>are <00:21:01.000>any <00:21:01.200>speeches <00:21:01.400>about <00:21:01.600>that

419
00:21:03.300 --> 00:21:06.800
<00:21:03.300>here <00:21:03.500>on <00:21:03.700>the <00:21:03.899>on <00:21:04.100>the <00:21:04.300>conference <00:21:04.500>and <00:21:04.700>there

420
00:21:06.800 --> 00:21:09.500
<00:21:06.800>is <00:21:07.000>the <00:21:07.200>main <00:21:07.399>story <00:21:07.600>telling <00:21:07.800>and <00:21:08.000>I <00:21:08.200>gonna

421
00:21:09.500 --> 00:21:12.500
<00:21:09.500>show <00:21:09.675>you <00:21:09.850>an <00:21:10.025>example <00:21:10.200>with <00:21:10.375>the <00:21:10.550>main <00:21:10.725>storytelling <00:21:10.900>so

422
00:21:12.500 --> 00:21:15.600
<00:21:12.500>that <00:21:12.627>you <00:21:12.754>can <00:21:12.881>get <00:21:13.009>a <00:21:13.136>bit <00:21:13.263>of <00:21:13.390>a <00:21:13.518>feeling <00:21:13.645>how <00:21:13.772>this <00:21:13.900>works.

423
00:21:16.800 --> 00:21:19.400
<00:21:16.800>I'll <00:21:16.955>show <00:21:17.111>you <00:21:17.266>the <00:21:17.422>main <00:21:17.577>story. <00:21:17.733>Of <00:21:17.888>course. <00:21:18.044>This <00:21:18.200>is

424
00:21:19.400 --> 00:21:20.100
<00:21:19.400>a <00:21:19.715>small <00:21:20.030>one.

425
00:21:20.900 --> 00:21:23.100
<00:21:20.900>Because <00:21:21.040>it <00:21:21.180>has <00:21:21.320>to <00:21:21.460>fit <00:21:21.600>on <00:21:21.740>this <00:21:21.880>slide. <00:21:22.020>What <00:21:22.160>do <00:21:22.300>you

426
00:21:23.100 --> 00:21:26.600
<00:21:23.100>see <00:21:23.333>you <00:21:23.566>see <00:21:23.800>a <00:21:24.033>small <00:21:24.266>Cinema <00:21:24.500>and

427
00:21:26.600 --> 00:21:29.500
<00:21:26.600>it's <00:21:26.949>there's <00:21:27.300>a <00:21:27.649>cinema <00:21:28.000>manager

428
00:21:29.500 --> 00:21:32.300
<00:21:29.500>in <00:21:29.780>the <00:21:30.060>cinema <00:21:30.340>and <00:21:30.620>there's <00:21:30.900>a

429
00:21:32.300 --> 00:21:35.700
<00:21:32.300>ticket <00:21:32.533>agent. <00:21:32.766>So <00:21:33.000>two <00:21:33.233>roles <00:21:33.466>that <00:21:33.700>work

430
00:21:35.700 --> 00:21:38.600
<00:21:35.700>in <00:21:36.050>this <00:21:36.400>little <00:21:36.750>Cinema <00:21:37.100>and

431
00:21:38.600 --> 00:21:41.300
<00:21:38.600>the <00:21:38.833>cinema <00:21:39.066>manager. <00:21:39.300>He <00:21:39.533>is <00:21:39.766>creating <00:21:40.000>a

432
00:21:41.300 --> 00:21:45.200
<00:21:41.300>weekly <00:21:41.475>schedule. <00:21:41.649>So <00:21:41.825>this <00:21:42.000>is <00:21:42.175>a <00:21:42.350>very <00:21:42.524>small <00:21:42.700>Art

433
00:21:44.200 --> 00:21:47.800
<00:21:44.200>House <00:21:44.433>Cinema <00:21:44.666>where <00:21:44.900>they <00:21:45.133>have <00:21:45.366>weekly <00:21:45.600>schedules

434
00:21:47.800 --> 00:21:50.000
<00:21:47.800>from <00:21:48.033>Tuesday <00:21:48.266>to <00:21:48.500>Wednesday. <00:21:48.733>And <00:21:48.966>this <00:21:49.200>is

435
00:21:50.300 --> 00:21:53.900
<00:21:50.300>his <00:21:50.427>work. <00:21:50.554>This <00:21:50.681>is <00:21:50.809>what <00:21:50.936>the <00:21:51.063>cinema <00:21:51.190>manager <00:21:51.318>is <00:21:51.445>doing. <00:21:51.572>So <00:21:51.700>the

436
00:21:53.900 --> 00:21:56.500
<00:21:53.900>whole <00:21:54.250>process <00:21:54.600>starts <00:21:54.950>with <00:21:55.300>the

437
00:21:56.500 --> 00:22:00.500
<00:21:56.500>Ed <00:21:56.700>agency <00:21:56.900>that <00:21:57.100>hands <00:21:57.300>over <00:21:57.500>some <00:21:57.700>advertising <00:21:57.900>booking

438
00:22:00.500 --> 00:22:03.500
<00:22:00.500>plans <00:22:00.700>and <00:22:00.900>the <00:22:01.100>cinema <00:22:01.300>manager <00:22:01.500>start <00:22:01.700>to <00:22:01.900>work

439
00:22:03.500 --> 00:22:07.800
<00:22:03.500>on <00:22:03.733>his <00:22:03.966>weekly <00:22:04.200>shed <00:22:04.433>you <00:22:04.666>he <00:22:04.900>gets

440
00:22:06.800 --> 00:22:09.800
<00:22:06.800>some <00:22:07.149>plans <00:22:07.500>for <00:22:07.850>film <00:22:08.200>shows

441
00:22:09.800 --> 00:22:12.800
<00:22:09.800>from <00:22:10.149>The <00:22:10.500>Firm <00:22:10.850>Distributors. <00:22:11.200>He

442
00:22:12.800 --> 00:22:15.400
<00:22:12.800>looks <00:22:13.149>at <00:22:13.500>the <00:22:13.850>Country-Wide <00:22:14.200>numbers

443
00:22:15.400 --> 00:22:18.100
<00:22:15.400>of <00:22:15.600>visitors <00:22:15.800>to <00:22:16.000>decide <00:22:16.200>which <00:22:16.400>films <00:22:16.600>he <00:22:16.800>want

444
00:22:18.100 --> 00:22:20.500
<00:22:18.100>to <00:22:18.274>have <00:22:18.449>in <00:22:18.625>his <00:22:18.800>weekly <00:22:18.975>schedule <00:22:19.149>and <00:22:19.324>then <00:22:19.500>he

445
00:22:20.700 --> 00:22:23.800
<00:22:20.700>Holds <00:22:20.900>the <00:22:21.100>film <00:22:21.300>distributor <00:22:21.500>and <00:22:21.700>discusses. <00:22:21.900>How <00:22:22.100>much

446
00:22:23.800 --> 00:22:26.100
<00:22:23.800>does <00:22:23.955>it <00:22:24.111>cost? <00:22:24.266>What <00:22:24.422>do <00:22:24.577>I <00:22:24.733>get? <00:22:24.888>What <00:22:25.044>do <00:22:25.200>I

447
00:22:26.100 --> 00:22:29.800
<00:22:26.100>want? <00:22:26.274>And <00:22:26.449>at <00:22:26.625>some <00:22:26.800>point <00:22:26.975>he <00:22:27.149>finalizes <00:22:27.324>his <00:22:27.500>weekly

448
00:22:29.800 --> 00:22:32.500
<00:22:29.800>schedule <00:22:30.149>and <00:22:30.500>the <00:22:30.850>wonderful <00:22:31.200>little

449
00:22:32.500 --> 00:22:35.700
<00:22:32.500>program <00:22:32.733>that <00:22:32.966>they <00:22:33.200>are <00:22:33.433>using <00:22:33.666>creates <00:22:33.900>the

450
00:22:35.700 --> 00:22:38.100
<00:22:35.700>list <00:22:35.980>of <00:22:36.260>Auditorium <00:22:36.540>plants <00:22:36.820>and <00:22:37.100>the

451
00:22:38.100 --> 00:22:41.400
<00:22:38.100>auditorium <00:22:38.300>plans <00:22:38.500>where <00:22:38.699>all <00:22:38.899>these <00:22:39.100>films <00:22:39.300>are <00:22:39.500>shown

452
00:22:41.400 --> 00:22:44.300
<00:22:41.400>and <00:22:41.633>then <00:22:41.866>the <00:22:42.100>customer <00:22:42.333>comes <00:22:42.566>asks <00:22:42.800>for

453
00:22:44.300 --> 00:22:47.600
<00:22:44.300>film <00:22:44.500>show <00:22:44.700>and <00:22:44.899>that <00:22:45.100>the <00:22:45.300>ticket <00:22:45.500>agent <00:22:45.700>looks

454
00:22:47.600 --> 00:22:50.700
<00:22:47.600>for <00:22:47.833>seeds <00:22:48.066>for <00:22:48.300>for <00:22:48.533>this <00:22:48.766>show. <00:22:49.000>He

455
00:22:50.700 --> 00:22:53.500
<00:22:50.700>wants <00:22:50.855>to <00:22:51.011>go <00:22:51.166>and <00:22:51.322>he <00:22:51.477>sells <00:22:51.633>him <00:22:51.788>the <00:22:51.944>tickets. <00:22:52.100>So

456
00:22:53.500 --> 00:22:56.900
<00:22:53.500>this <00:22:53.780>is <00:22:54.060>the <00:22:54.340>overall <00:22:54.620>domain <00:22:54.900>story.

457
00:22:56.900 --> 00:22:59.600
<00:22:56.900>Of <00:22:57.075>course, <00:22:57.250>there <00:22:57.425>are <00:22:57.600>a <00:22:57.775>lot <00:22:57.950>of <00:22:58.125>details <00:22:58.300>that

458
00:22:59.600 --> 00:23:03.100
<00:22:59.600>I <00:22:59.833>put <00:23:00.066>aside <00:23:00.300>in <00:23:00.533>here <00:23:00.766>and <00:23:01.000>if

459
00:23:02.100 --> 00:23:05.600
<00:23:02.100>you <00:23:02.255>want <00:23:02.411>to <00:23:02.566>cut <00:23:02.722>a <00:23:02.877>thing <00:23:03.033>like <00:23:03.188>that, <00:23:03.344>of <00:23:03.500>course

460
00:23:05.600 --> 00:23:08.600
<00:23:05.600>in <00:23:05.800>your <00:23:06.000>domain, <00:23:06.199>it's <00:23:06.399>much <00:23:06.600>more <00:23:06.800>complicated, <00:23:07.000>but

461
00:23:08.600 --> 00:23:11.200
<00:23:08.600>if <00:23:08.755>you <00:23:08.911>want <00:23:09.066>to <00:23:09.222>cut <00:23:09.377>a <00:23:09.533>story <00:23:09.688>like <00:23:09.844>that, <00:23:10.000>you

462
00:23:11.200 --> 00:23:14.700
<00:23:11.200>have <00:23:11.355>to <00:23:11.511>look <00:23:11.666>for <00:23:11.822>several <00:23:11.977>things. <00:23:12.133>The <00:23:12.288>first <00:23:12.444>thing <00:23:12.600>that

463
00:23:14.700 --> 00:23:17.800
<00:23:14.700>I <00:23:14.875>that <00:23:15.050>we <00:23:15.225>can <00:23:15.400>see <00:23:15.575>here, <00:23:15.750>is <00:23:15.925>that <00:23:16.100>very

464
00:23:17.800 --> 00:23:20.100
<00:23:17.800>often <00:23:18.149>you <00:23:18.500>have <00:23:18.850>different <00:23:19.200>triggers.

465
00:23:20.700 --> 00:23:23.500
<00:23:20.700>Get <00:23:20.900>into <00:23:21.100>a <00:23:21.300>story <00:23:21.500>like <00:23:21.700>this <00:23:21.900>over <00:23:22.100>here

466
00:23:23.500 --> 00:23:26.500
<00:23:23.500>is <00:23:23.700>one <00:23:23.900>trigger <00:23:24.100>the <00:23:24.300>adverted <00:23:24.500>the <00:23:24.700>Ad <00:23:24.900>Agency

467
00:23:26.500 --> 00:23:29.500
<00:23:26.500>sends <00:23:26.655>something <00:23:26.811>and <00:23:26.966>the <00:23:27.122>other <00:23:27.277>one <00:23:27.433>is <00:23:27.588>the <00:23:27.744>customer <00:23:27.900>is

468
00:23:29.500 --> 00:23:32.500
<00:23:29.500>coming. <00:23:29.780>So <00:23:30.060>we <00:23:30.340>have <00:23:30.620>two <00:23:30.900>different

469
00:23:32.500 --> 00:23:35.900
<00:23:32.500>entrances <00:23:32.850>into <00:23:33.200>this <00:23:33.550>overall <00:23:33.900>story

470
00:23:35.900 --> 00:23:38.200
<00:23:35.900>and <00:23:36.250>we <00:23:36.600>can <00:23:36.950>look <00:23:37.300>at

471
00:23:38.200 --> 00:23:41.900
<00:23:38.200>it. <00:23:38.375>That <00:23:38.550>way <00:23:38.725>this <00:23:38.900>thing <00:23:39.075>over <00:23:39.250>here <00:23:39.425>happens <00:23:39.600>once

472
00:23:41.900 --> 00:23:44.900
<00:23:41.900>a <00:23:42.075>week <00:23:42.250>and <00:23:42.425>this <00:23:42.600>thing <00:23:42.775>over <00:23:42.950>here <00:23:43.125>each <00:23:43.300>time

473
00:23:44.900 --> 00:23:47.200
<00:23:44.900>when <00:23:45.100>the <00:23:45.300>customer <00:23:45.500>asks <00:23:45.700>for <00:23:45.900>a <00:23:46.100>ticket, <00:23:46.300>so

474
00:23:47.200 --> 00:23:50.300
<00:23:47.200>there <00:23:47.433>are <00:23:47.666>some <00:23:47.900>time <00:23:48.133>differences <00:23:48.366>and <00:23:48.600>if

475
00:23:50.300 --> 00:23:53.300
<00:23:50.300>you <00:23:50.475>look <00:23:50.649>into <00:23:50.825>huge <00:23:51.000>Cinema, <00:23:51.175>you <00:23:51.350>will <00:23:51.524>find <00:23:51.700>out

476
00:23:53.300 --> 00:23:56.700
<00:23:53.300>that <00:23:53.500>they <00:23:53.700>have <00:23:53.899>names <00:23:54.100>for <00:23:54.300>that. <00:23:54.500>There <00:23:54.700>is

477
00:23:56.700 --> 00:23:59.100
<00:23:56.700>a <00:23:56.933>cinema <00:23:57.166>manager <00:23:57.400>management <00:23:57.633>and <00:23:57.866>there <00:23:58.100>is

478
00:23:59.100 --> 00:24:02.100
<00:23:59.100>a <00:23:59.216>ticket <00:23:59.333>sales <00:23:59.449>on <00:23:59.566>the <00:23:59.683>other <00:23:59.800>side. <00:23:59.916>I <00:24:00.033>hope <00:24:00.149>you <00:24:00.266>can <00:24:00.383>see <00:24:00.500>it

479
00:24:02.100 --> 00:24:02.900
<00:24:02.100>that <00:24:02.460>way. <00:24:02.820>Yeah.

480
00:24:03.900 --> 00:24:07.000
<00:24:03.900>So <00:24:04.180>but <00:24:04.460>the <00:24:04.740>most <00:24:05.020>important <00:24:05.300>thing

481
00:24:06.400 --> 00:24:09.800
<00:24:06.400>you <00:24:06.600>have <00:24:06.800>to <00:24:07.000>look <00:24:07.200>for <00:24:07.400>in <00:24:07.600>domain <00:24:07.800>stories

482
00:24:09.800 --> 00:24:13.800
<00:24:09.800>or <00:24:10.033>as <00:24:10.266>well <00:24:10.500>in <00:24:10.733>eventstorming <00:24:10.966>is <00:24:11.200>points

483
00:24:12.800 --> 00:24:15.700
<00:24:12.800>in <00:24:13.149>a <00:24:13.500>process <00:24:13.850>where <00:24:14.200>information

484
00:24:15.700 --> 00:24:18.300
<00:24:15.700>Flows <00:24:16.166>In <00:24:16.633>One <00:24:17.100>Direction

485
00:24:18.300 --> 00:24:21.800
<00:24:18.300>and <00:24:18.500>there <00:24:18.700>is <00:24:18.899>no <00:24:19.100>way <00:24:19.300>no <00:24:19.500>return. <00:24:19.700>So

486
00:24:21.800 --> 00:24:24.400
<00:24:21.800>something <00:24:22.080>is <00:24:22.360>finalized <00:24:22.639>in <00:24:22.919>here <00:24:23.200>the

487
00:24:24.400 --> 00:24:27.100
<00:24:24.400>weekly <00:24:24.600>schedule <00:24:24.800>and <00:24:25.000>it's <00:24:25.200>handed <00:24:25.400>over <00:24:25.600>to <00:24:25.800>the

488
00:24:27.100 --> 00:24:30.700
<00:24:27.100>other <00:24:27.300>side. <00:24:27.500>This <00:24:27.699>is <00:24:27.899>a <00:24:28.100>great <00:24:28.300>indicator <00:24:28.500>that

489
00:24:30.700 --> 00:24:33.800
<00:24:30.700>the <00:24:30.933>system <00:24:31.166>should <00:24:31.400>be <00:24:31.633>cut <00:24:31.866>into <00:24:32.100>domain

490
00:24:33.800 --> 00:24:35.300
<00:24:33.800>pieces <00:24:34.250>here <00:24:34.700>and <00:24:35.149>then

491
00:24:36.300 --> 00:24:39.100
<00:24:36.300>Something <00:24:36.455>else <00:24:36.611>that <00:24:36.766>is <00:24:36.922>in <00:24:37.077>here <00:24:37.233>as <00:24:37.388>well, <00:24:37.544>which <00:24:37.700>is

492
00:24:39.100 --> 00:24:42.800
<00:24:39.100>very <00:24:39.255>interesting <00:24:39.411>over <00:24:39.566>here. <00:24:39.722>We <00:24:39.877>have <00:24:40.033>a <00:24:40.188>weekly <00:24:40.344>schedule <00:24:40.500>that

493
00:24:42.800 --> 00:24:46.100
<00:24:42.800>the <00:24:43.033>cinema <00:24:43.266>manager <00:24:43.500>is <00:24:43.733>creating <00:24:43.966>and <00:24:44.200>the

494
00:24:45.100 --> 00:24:48.400
<00:24:45.100>customer <00:24:45.449>of <00:24:45.800>course <00:24:46.149>looks <00:24:46.500>at

495
00:24:48.400 --> 00:24:51.700
<00:24:48.400>a <00:24:48.633>weekly <00:24:48.866>schedule <00:24:49.100>as <00:24:49.333>well, <00:24:49.566>but <00:24:49.800>they

496
00:24:51.700 --> 00:24:52.900
<00:24:51.700>are <00:24:52.240>so <00:24:52.780>different.

497
00:24:54.100 --> 00:24:57.000
<00:24:54.100>Over <00:24:54.333>here <00:24:54.566>only <00:24:54.800>the <00:24:55.033>film <00:24:55.266>shows <00:24:55.500>and

498
00:24:57.600 --> 00:25:00.500
<00:24:57.600>their <00:24:57.833>time <00:24:58.066>slots <00:24:58.300>and <00:24:58.533>and <00:24:58.766>auditoriums <00:24:59.000>are

499
00:25:00.500 --> 00:25:03.400
<00:25:00.500>named. <00:25:00.700>But <00:25:00.900>in <00:25:01.100>this <00:25:01.300>weekly <00:25:01.500>schedule <00:25:01.700>that <00:25:01.900>the

500
00:25:03.400 --> 00:25:06.300
<00:25:03.400>cinema <00:25:03.555>manager <00:25:03.711>is <00:25:03.866>looking <00:25:04.022>at <00:25:04.177>he <00:25:04.333>of <00:25:04.488>course <00:25:04.644>put <00:25:04.800>in

501
00:25:06.300 --> 00:25:09.800
<00:25:06.300>the <00:25:06.475>advertising <00:25:06.649>and <00:25:06.825>all <00:25:07.000>his <00:25:07.175>planning <00:25:07.350>for <00:25:07.524>cleaning <00:25:07.700>the

502
00:25:09.800 --> 00:25:12.200
<00:25:09.800>cinema <00:25:10.033>for <00:25:10.266>the <00:25:10.500>man <00:25:10.733>who <00:25:10.966>is <00:25:11.200>bringing

503
00:25:12.200 --> 00:25:15.600
<00:25:12.200>the <00:25:12.355>ice <00:25:12.511>and <00:25:12.666>and <00:25:12.822>all <00:25:12.977>this <00:25:13.133>so <00:25:13.288>they <00:25:13.444>are <00:25:13.600>this

504
00:25:15.600 --> 00:25:18.500
<00:25:15.600>is <00:25:15.774>the <00:25:15.949>same <00:25:16.125>word, <00:25:16.300>but <00:25:16.475>they <00:25:16.649>are <00:25:16.824>very <00:25:17.000>different

505
00:25:18.500 --> 00:25:21.200
<00:25:18.500>things. <00:25:18.780>So <00:25:19.060>this <00:25:19.340>is <00:25:19.620>a <00:25:19.900>very

506
00:25:21.200 --> 00:25:24.700
<00:25:21.200>huge <00:25:21.433>indicator <00:25:21.666>as <00:25:21.900>well <00:25:22.133>that <00:25:22.366>there <00:25:22.600>are

507
00:25:24.700 --> 00:25:27.600
<00:25:24.700>things <00:25:24.875>that <00:25:25.050>there <00:25:25.225>might <00:25:25.400>be <00:25:25.575>a <00:25:25.750>border <00:25:25.925>the <00:25:26.100>weekly

508
00:25:27.600 --> 00:25:30.800
<00:25:27.600>schedule <00:25:27.755>is <00:25:27.911>something <00:25:28.066>very <00:25:28.222>different <00:25:28.377>over <00:25:28.533>here <00:25:28.688>over <00:25:28.844>there. <00:25:29.000>And

509
00:25:30.800 --> 00:25:33.600
<00:25:30.800>these <00:25:31.149>are <00:25:31.500>all <00:25:31.850>ideas <00:25:32.200>from

510
00:25:33.600 --> 00:25:36.500
<00:25:33.600>the <00:25:33.755>main <00:25:33.911>driven <00:25:34.066>design <00:25:34.222>that <00:25:34.377>help <00:25:34.533>us <00:25:34.688>to <00:25:34.844>divide <00:25:35.000>a

511
00:25:36.500 --> 00:25:39.600
<00:25:36.500>system <00:25:36.640>and <00:25:36.780>I <00:25:36.920>will <00:25:37.060>show <00:25:37.200>you <00:25:37.340>now <00:25:37.480>how <00:25:37.620>we <00:25:37.760>should <00:25:37.900>build

512
00:25:39.600 --> 00:25:43.500
<00:25:39.600>a <00:25:39.879>system <00:25:40.159>following <00:25:40.439>these <00:25:40.719>these <00:25:41.000>separations.

513
00:25:44.400 --> 00:25:47.500
<00:25:44.400>On <00:25:44.527>the <00:25:44.654>left <00:25:44.781>side. <00:25:44.909>I <00:25:45.036>will <00:25:45.163>show <00:25:45.290>you <00:25:45.418>the <00:25:45.545>good <00:25:45.672>version <00:25:45.800>the

514
00:25:47.500 --> 00:25:50.400
<00:25:47.500>domain <00:25:47.640>of <00:25:47.780>design <00:25:47.920>version <00:25:48.060>and <00:25:48.200>on <00:25:48.340>the <00:25:48.480>right <00:25:48.620>side <00:25:48.760>the <00:25:48.900>bad

515
00:25:50.400 --> 00:25:52.200
<00:25:50.400>version. <00:25:50.575>I <00:25:50.750>will <00:25:50.925>start <00:25:51.100>start <00:25:51.275>with <00:25:51.450>a <00:25:51.625>good <00:25:51.800>version.

516
00:25:53.200 --> 00:25:57.200
<00:25:53.200>We <00:25:53.355>will <00:25:53.511>have <00:25:53.666>a <00:25:53.822>bounded <00:25:53.977>context <00:25:54.133>Cinema <00:25:54.288>management <00:25:54.444>and <00:25:54.600>the

517
00:25:56.200 --> 00:25:59.500
<00:25:56.200>bounded <00:25:56.480>context <00:25:56.760>ticket <00:25:57.040>sales <00:25:57.320>as <00:25:57.600>we

518
00:25:59.500 --> 00:26:02.400
<00:25:59.500>had <00:25:59.700>on <00:25:59.900>the <00:26:00.100>slide <00:26:00.300>before <00:26:00.500>and <00:26:00.700>in <00:26:00.900>there

519
00:26:02.400 --> 00:26:05.200
<00:26:02.400>we <00:26:02.600>will <00:26:02.800>have <00:26:03.000>a <00:26:03.200>UI <00:26:03.400>for <00:26:03.600>for <00:26:03.800>the

520
00:26:05.200 --> 00:26:08.400
<00:26:05.200>cinema <00:26:05.340>manager <00:26:05.480>to <00:26:05.620>do <00:26:05.760>is <00:26:05.900>weekly <00:26:06.040>planning <00:26:06.180>and <00:26:06.320>he <00:26:06.460>will <00:26:06.600>have

521
00:26:08.400 --> 00:26:12.000
<00:26:08.400>some <00:26:08.575>kind <00:26:08.750>of <00:26:08.925>service <00:26:09.100>where <00:26:09.275>he <00:26:09.450>can <00:26:09.625>plan <00:26:09.800>films

522
00:26:11.100 --> 00:26:15.000
<00:26:11.100>into <00:26:11.333>holes <00:26:11.566>and <00:26:11.800>the <00:26:12.033>advertising <00:26:12.266>and <00:26:12.500>the

523
00:26:14.400 --> 00:26:17.200
<00:26:14.400>number <00:26:14.600>of <00:26:14.800>visitors <00:26:15.000>that <00:26:15.200>he <00:26:15.400>expects <00:26:15.600>and <00:26:15.800>so

524
00:26:17.200 --> 00:26:20.400
<00:26:17.200>on <00:26:17.433>and <00:26:17.666>this <00:26:17.900>founded <00:26:18.133>context <00:26:18.366>will <00:26:18.600>work

525
00:26:20.400 --> 00:26:24.100
<00:26:20.400>on <00:26:20.575>a <00:26:20.750>weekly <00:26:20.925>schedule <00:26:21.100>and <00:26:21.275>on <00:26:21.450>the <00:26:21.625>auditorium <00:26:21.800>plants

526
00:26:23.100 --> 00:26:25.600
<00:26:23.100>to <00:26:23.566>organize <00:26:24.033>all <00:26:24.500>that.

527
00:26:26.500 --> 00:26:29.200
<00:26:26.500>And <00:26:26.733>then <00:26:26.966>we <00:26:27.200>have <00:26:27.433>the <00:26:27.666>UI <00:26:27.900>for

528
00:26:29.200 --> 00:26:33.200
<00:26:29.200>the <00:26:29.340>ticket <00:26:29.480>sales <00:26:29.620>with <00:26:29.760>a <00:26:29.900>service <00:26:30.040>where <00:26:30.180>you <00:26:30.320>can <00:26:30.460>search <00:26:30.600>time

529
00:26:32.200 --> 00:26:35.200
<00:26:32.200>for <00:26:32.480>films <00:26:32.760>and <00:26:33.040>seeds <00:26:33.320>in <00:26:33.600>the

530
00:26:35.200 --> 00:26:38.900
<00:26:35.200>hole <00:26:35.340>and <00:26:35.480>you <00:26:35.620>can <00:26:35.760>book <00:26:35.900>seeds <00:26:36.040>and <00:26:36.180>sell <00:26:36.320>places <00:26:36.460>and <00:26:36.600>this

531
00:26:38.900 --> 00:26:41.800
<00:26:38.900>service <00:26:39.180>will <00:26:39.460>work <00:26:39.740>on <00:26:40.020>a <00:26:40.300>weekly

532
00:26:41.800 --> 00:26:44.700
<00:26:41.800>schedule <00:26:41.975>the <00:26:42.149>auditorium <00:26:42.325>plan <00:26:42.500>and <00:26:42.675>he <00:26:42.850>will <00:26:43.024>create <00:26:43.200>tickets

533
00:26:44.700 --> 00:26:47.900
<00:26:44.700>of <00:26:44.933>course <00:26:45.166>and <00:26:45.400>these <00:26:45.633>two <00:26:45.866>bounded <00:26:46.100>contexts.

534
00:26:47.900 --> 00:26:50.900
<00:26:47.900>They <00:26:48.133>are <00:26:48.366>connected. <00:26:48.600>Of <00:26:48.833>course <00:26:49.066>you <00:26:49.300>remember

535
00:26:50.900 --> 00:26:53.400
<00:26:50.900>the <00:26:51.250>cinema <00:26:51.600>manager <00:26:51.950>created <00:26:52.300>the

536
00:26:53.400 --> 00:26:56.200
<00:26:53.400>weekly <00:26:53.600>schedule <00:26:53.800>and <00:26:54.000>put <00:26:54.200>it <00:26:54.400>over <00:26:54.600>into <00:26:54.800>the

537
00:26:56.200 --> 00:26:59.100
<00:26:56.200>other <00:26:56.433>bounded <00:26:56.666>context. <00:26:56.900>So <00:26:57.133>there <00:26:57.366>must <00:26:57.600>be

538
00:26:59.100 --> 00:27:01.800
<00:26:59.100>some <00:26:59.800>communication <00:27:00.500>but

539
00:27:02.700 --> 00:27:05.600
<00:27:02.700>This <00:27:03.050>communication <00:27:03.400>between <00:27:03.750>these <00:27:04.100>two

540
00:27:05.600 --> 00:27:09.400
<00:27:05.600>bounded <00:27:05.949>contacts <00:27:06.300>is <00:27:06.649>not <00:27:07.000>synchronously.

541
00:27:10.100 --> 00:27:13.200
<00:27:10.100>You <00:27:10.255>can't <00:27:10.411>sell <00:27:10.566>anything <00:27:10.722>if <00:27:10.877>the <00:27:11.033>weekly <00:27:11.188>schedule <00:27:11.344>is <00:27:11.500>not

542
00:27:13.200 --> 00:27:16.100
<00:27:13.200>there <00:27:13.327>but <00:27:13.454>this <00:27:13.581>is <00:27:13.709>no <00:27:13.836>problem. <00:27:13.963>You <00:27:14.090>cut <00:27:14.218>just <00:27:14.345>can't <00:27:14.472>sell <00:27:14.600>it.

543
00:27:16.100 --> 00:27:19.200
<00:27:16.100>And <00:27:16.255>on <00:27:16.411>this <00:27:16.566>side. <00:27:16.722>You <00:27:16.877>can't <00:27:17.033>plan <00:27:17.188>if <00:27:17.344>you <00:27:17.500>don't

544
00:27:19.200 --> 00:27:22.700
<00:27:19.200>have <00:27:19.355>the <00:27:19.511>auditorium <00:27:19.666>plan, <00:27:19.822>right, <00:27:19.977>but <00:27:20.133>there <00:27:20.288>is <00:27:20.444>no <00:27:20.600>real

545
00:27:22.700 --> 00:27:25.600
<00:27:22.700>time <00:27:23.050>problem <00:27:23.400>between <00:27:23.750>these <00:27:24.100>two

546
00:27:25.600 --> 00:27:28.400
<00:27:25.600>bounded <00:27:25.774>contexts. <00:27:25.949>So <00:27:26.125>this <00:27:26.300>is <00:27:26.475>where <00:27:26.649>we <00:27:26.824>are <00:27:27.000>heading

547
00:27:28.400 --> 00:27:31.100
<00:27:28.400>for <00:27:28.600>if <00:27:28.800>we <00:27:29.000>are <00:27:29.200>following <00:27:29.400>domain <00:27:29.600>driven <00:27:29.800>design.

548
00:27:31.800 --> 00:27:34.700
<00:27:31.800>The <00:27:32.000>bad <00:27:32.200>solution <00:27:32.399>looks <00:27:32.600>like <00:27:32.800>this <00:27:33.000>we <00:27:33.200>are

549
00:27:34.700 --> 00:27:36.300
<00:27:34.700>dividing <00:27:35.400>our <00:27:36.100>system.

550
00:27:37.300 --> 00:27:41.100
<00:27:37.300>And <00:27:37.500>I <00:27:37.700>will <00:27:37.899>call <00:27:38.100>them <00:27:38.300>service <00:27:38.500>for <00:27:38.700>weekly

551
00:27:40.100 --> 00:27:43.300
<00:27:40.100>schedule <00:27:40.449>and <00:27:40.800>this <00:27:41.149>service <00:27:41.500>will

552
00:27:43.300 --> 00:27:45.800
<00:27:43.300>only <00:27:43.580>work <00:27:43.860>on <00:27:44.139>the <00:27:44.419>weekly <00:27:44.700>show.

553
00:27:46.500 --> 00:27:50.100
<00:27:46.500>And <00:27:46.616>on <00:27:46.733>the <00:27:46.850>other <00:27:46.966>side <00:27:47.083>there <00:27:47.200>is <00:27:47.316>a <00:27:47.433>service <00:27:47.550>for <00:27:47.666>the <00:27:47.783>auditorium <00:27:47.900>plan.

554
00:27:49.100 --> 00:27:52.900
<00:27:49.100>So <00:27:49.379>we <00:27:49.659>divide <00:27:49.939>our <00:27:50.219>system <00:27:50.500>according

555
00:27:52.900 --> 00:27:55.300
<00:27:52.900>to <00:27:53.133>entities <00:27:53.366>and <00:27:53.600>this <00:27:53.833>is <00:27:54.066>what <00:27:54.300>I

556
00:27:55.300 --> 00:27:57.200
<00:27:55.300>see <00:27:55.766>a <00:27:56.233>lot <00:27:56.700>unfortunately.

557
00:27:58.700 --> 00:28:01.400
<00:27:58.700>And <00:27:58.875>then <00:27:59.050>on <00:27:59.225>top, <00:27:59.400>of <00:27:59.575>course, <00:27:59.750>there's <00:27:59.925>a <00:28:00.100>service

558
00:28:01.400 --> 00:28:05.700
<00:28:01.400>we <00:28:01.600>have <00:28:01.800>to <00:28:02.000>protect <00:28:02.200>our <00:28:02.400>domain <00:28:02.600>our <00:28:02.800>domain

559
00:28:05.700 --> 00:28:08.600
<00:28:05.700>classes <00:28:05.900>with <00:28:06.100>the <00:28:06.300>service. <00:28:06.500>So <00:28:06.700>in <00:28:06.900>this <00:28:07.100>service

560
00:28:08.600 --> 00:28:11.100
<00:28:08.600>now <00:28:08.833>are <00:28:09.066>all <00:28:09.300>the <00:28:09.533>methods <00:28:09.766>that <00:28:10.000>are

561
00:28:11.100 --> 00:28:14.300
<00:28:11.100>needed <00:28:11.240>to <00:28:11.379>work <00:28:11.520>on <00:28:11.659>this <00:28:11.800>weekly <00:28:11.939>schedule. <00:28:12.080>So <00:28:12.219>the <00:28:12.360>yellow <00:28:12.500>one

562
00:28:14.300 --> 00:28:17.100
<00:28:14.300>came <00:28:14.475>over <00:28:14.649>from <00:28:14.825>the <00:28:15.000>other <00:28:15.175>bounded <00:28:15.350>context. <00:28:15.524>This <00:28:15.700>is

563
00:28:17.100 --> 00:28:20.700
<00:28:17.100>why <00:28:17.255>it's <00:28:17.411>yellow <00:28:17.566>and <00:28:17.722>over <00:28:17.877>here <00:28:18.033>is <00:28:18.188>the <00:28:18.344>auditorium <00:28:18.500>plan

564
00:28:20.700 --> 00:28:23.500
<00:28:20.700>service. <00:28:21.050>Well, <00:28:21.400>but <00:28:21.750>the <00:28:22.100>weekly

565
00:28:24.400 --> 00:28:27.600
<00:28:24.400>The <00:28:24.680>weekly <00:28:24.960>planning <00:28:25.240>UI <00:28:25.520>might <00:28:25.800>be

566
00:28:27.600 --> 00:28:30.400
<00:28:27.600>happy <00:28:27.774>just <00:28:27.949>with <00:28:28.125>this <00:28:28.300>service, <00:28:28.475>but <00:28:28.649>at <00:28:28.824>least <00:28:29.000>the

567
00:28:30.400 --> 00:28:34.200
<00:28:30.400>ticket <00:28:30.575>says <00:28:30.750>UI <00:28:30.925>needs <00:28:31.100>to <00:28:31.275>work <00:28:31.450>on <00:28:31.625>both <00:28:31.800>services

568
00:28:33.200 --> 00:28:36.800
<00:28:33.200>and <00:28:33.550>there <00:28:33.900>the <00:28:34.250>coupling <00:28:34.600>starts

569
00:28:36.800 --> 00:28:39.700
<00:28:36.800>you <00:28:37.033>have <00:28:37.266>direct <00:28:37.500>coupling <00:28:37.733>and <00:28:37.966>somewhere <00:28:38.200>you

570
00:28:39.700 --> 00:28:42.700
<00:28:39.700>can <00:28:39.875>create <00:28:40.050>tickets. <00:28:40.225>So <00:28:40.400>this <00:28:40.575>this <00:28:40.750>is <00:28:40.925>what <00:28:41.100>you

571
00:28:42.700 --> 00:28:43.400
<00:28:42.700>should <00:28:43.330>avoid.

572
00:28:44.200 --> 00:28:47.300
<00:28:44.200>And <00:28:44.375>you <00:28:44.550>should <00:28:44.725>go <00:28:44.900>over <00:28:45.075>here. <00:28:45.250>And <00:28:45.425>this <00:28:45.600>is

573
00:28:47.300 --> 00:28:50.400
<00:28:47.300>what <00:28:47.455>is <00:28:47.611>sometimes <00:28:47.766>hard <00:28:47.922>for <00:28:48.077>people <00:28:48.233>to <00:28:48.388>understand <00:28:48.544>that <00:28:48.700>they

574
00:28:50.400 --> 00:28:53.300
<00:28:50.400>will <00:28:50.680>have <00:28:50.960>reuse <00:28:51.240>in <00:28:51.520>their <00:28:51.800>Software

575
00:28:53.300 --> 00:28:56.200
<00:28:53.300>System. <00:28:53.455>So <00:28:53.611>to <00:28:53.766>sum <00:28:53.922>up <00:28:54.077>what <00:28:54.233>I <00:28:54.388>told <00:28:54.544>you <00:28:54.700>about

576
00:28:56.200 --> 00:28:59.200
<00:28:56.200>strategic <00:28:56.550>design, <00:28:56.900>you <00:28:57.250>need <00:28:57.600>to

577
00:28:59.200 --> 00:29:03.300
<00:28:59.200>cut <00:28:59.480>your <00:28:59.760>domain <00:29:00.040>according <00:29:00.320>to <00:29:00.600>boundaries

578
00:29:02.300 --> 00:29:05.600
<00:29:02.300>in <00:29:02.580>the <00:29:02.860>business <00:29:03.139>process <00:29:03.419>that <00:29:03.700>are

579
00:29:05.600 --> 00:29:08.200
<00:29:05.600>described <00:29:05.879>by <00:29:06.159>domain <00:29:06.439>experts. <00:29:06.719>So <00:29:07.000>you

580
00:29:08.200 --> 00:29:12.000
<00:29:08.200>will <00:29:08.340>have <00:29:08.480>to <00:29:08.620>discuss <00:29:08.760>with <00:29:08.900>them <00:29:09.040>and <00:29:09.180>this <00:29:09.320>is <00:29:09.460>often <00:29:09.600>interesting

581
00:29:11.400 --> 00:29:15.100
<00:29:11.400>because <00:29:11.633>they <00:29:11.866>are <00:29:12.100>so <00:29:12.333>much <00:29:12.566>into <00:29:12.800>using

582
00:29:14.100 --> 00:29:17.500
<00:29:14.100>the <00:29:14.300>software <00:29:14.500>that <00:29:14.699>is <00:29:14.899>already <00:29:15.100>there <00:29:15.300>that <00:29:15.500>it's

583
00:29:17.500 --> 00:29:20.800
<00:29:17.500>hard <00:29:17.700>to <00:29:17.900>dig <00:29:18.100>out <00:29:18.300>the <00:29:18.500>original <00:29:18.700>idea <00:29:18.900>of

584
00:29:20.800 --> 00:29:23.600
<00:29:20.800>what <00:29:20.955>they <00:29:21.111>are <00:29:21.266>working <00:29:21.422>on <00:29:21.577>but <00:29:21.733>this <00:29:21.888>is <00:29:22.044>one <00:29:22.200>person

585
00:29:23.600 --> 00:29:24.700
<00:29:23.600>one <00:29:24.095>starting <00:29:24.590>point.

586
00:29:25.400 --> 00:29:29.000
<00:29:25.400>The <00:29:25.555>information <00:29:25.711>flow <00:29:25.866>I <00:29:26.022>told <00:29:26.177>you <00:29:26.333>about <00:29:26.488>it. <00:29:26.644>The <00:29:26.800>weekly

587
00:29:28.200 --> 00:29:31.300
<00:29:28.200>schedule <00:29:28.433>is <00:29:28.666>thrown <00:29:28.900>over <00:29:29.133>from <00:29:29.366>one <00:29:29.600>side

588
00:29:31.300 --> 00:29:34.800
<00:29:31.300>to <00:29:31.440>the <00:29:31.580>other. <00:29:31.720>This <00:29:31.860>is <00:29:32.000>a <00:29:32.139>very <00:29:32.280>very <00:29:32.419>good <00:29:32.560>moment <00:29:32.700>to

589
00:29:34.800 --> 00:29:37.600
<00:29:34.800>cut <00:29:35.149>the <00:29:35.500>process <00:29:35.850>rhythms. <00:29:36.200>If

590
00:29:37.600 --> 00:29:41.200
<00:29:37.600>there <00:29:37.755>are <00:29:37.911>different <00:29:38.066>rhythms <00:29:38.222>in <00:29:38.377>your <00:29:38.533>in <00:29:38.688>your <00:29:38.844>domain <00:29:39.000>the

591
00:29:40.200 --> 00:29:43.800
<00:29:40.200>process <00:29:40.550>triggers <00:29:40.900>and <00:29:41.250>if <00:29:41.600>you

592
00:29:43.800 --> 00:29:46.400
<00:29:43.800>find <00:29:44.149>different <00:29:44.500>key <00:29:44.850>Concepts <00:29:45.200>in

593
00:29:46.400 --> 00:29:49.300
<00:29:46.400>your <00:29:46.633>domain <00:29:46.866>in <00:29:47.100>different <00:29:47.333>sub <00:29:47.566>domains, <00:29:47.800>this

594
00:29:49.300 --> 00:29:52.800
<00:29:49.300>is <00:29:49.533>as <00:29:49.766>well. <00:29:50.000>Very <00:29:50.233>good <00:29:50.466>hint <00:29:50.700>that

595
00:29:52.800 --> 00:29:55.600
<00:29:52.800>you <00:29:53.000>should <00:29:53.200>cut. <00:29:53.399>I <00:29:53.600>see <00:29:53.800>that <00:29:54.000>very <00:29:54.200>often

596
00:29:55.600 --> 00:29:58.700
<00:29:55.600>in <00:29:55.800>context <00:29:56.000>people <00:29:56.199>are <00:29:56.399>talking <00:29:56.600>about <00:29:56.800>the <00:29:57.000>customer

597
00:29:58.700 --> 00:30:01.500
<00:29:58.700>and <00:29:59.050>there <00:29:59.400>are <00:29:59.750>many <00:30:00.100>many

598
00:30:01.500 --> 00:30:04.400
<00:30:01.500>different <00:30:01.675>parts <00:30:01.850>in <00:30:02.025>their <00:30:02.200>organization <00:30:02.375>that <00:30:02.550>have <00:30:02.725>a <00:30:02.900>very

599
00:30:04.400 --> 00:30:07.300
<00:30:04.400>different <00:30:04.633>view <00:30:04.866>on <00:30:05.100>the <00:30:05.333>customer <00:30:05.566>or <00:30:05.800>on

600
00:30:07.300 --> 00:30:11.200
<00:30:07.300>the <00:30:07.533>product <00:30:07.766>or <00:30:08.000>on <00:30:08.233>whatever <00:30:08.466>basic <00:30:08.700>key

601
00:30:10.200 --> 00:30:13.500
<00:30:10.200>key <00:30:10.480>concept <00:30:10.760>you <00:30:11.040>have <00:30:11.320>just <00:30:11.600>talk

602
00:30:13.500 --> 00:30:16.400
<00:30:13.500>with <00:30:13.675>them. <00:30:13.850>Let <00:30:14.025>them <00:30:14.200>Define <00:30:14.375>what <00:30:14.550>what <00:30:14.725>they <00:30:14.900>think

603
00:30:16.400 --> 00:30:19.300
<00:30:16.400>a <00:30:16.575>customer <00:30:16.750>is <00:30:16.925>this <00:30:17.100>is <00:30:17.275>so <00:30:17.450>different <00:30:17.625>and <00:30:17.800>we

604
00:30:19.300 --> 00:30:22.700
<00:30:19.300>program <00:30:19.533>this <00:30:19.766>all <00:30:20.000>into <00:30:20.233>one <00:30:20.466>customer <00:30:20.700>class.

605
00:30:22.700 --> 00:30:23.500
<00:30:22.700>It's <00:30:23.060>really <00:30:23.420>horrible.

606
00:30:25.100 --> 00:30:29.300
<00:30:25.100>Sometimes <00:30:25.300>you <00:30:25.500>have <00:30:25.699>you <00:30:25.899>still <00:30:26.100>have <00:30:26.300>departments <00:30:26.500>in

607
00:30:29.300 --> 00:30:32.700
<00:30:29.300>your <00:30:29.580>organization <00:30:29.860>with <00:30:30.139>domain <00:30:30.419>experts. <00:30:30.700>This

608
00:30:32.700 --> 00:30:35.600
<00:30:32.700>is <00:30:32.875>as <00:30:33.050>well <00:30:33.225>a <00:30:33.400>very <00:30:33.575>good <00:30:33.750>hint <00:30:33.925>and <00:30:34.100>in

609
00:30:35.600 --> 00:30:38.700
<00:30:35.600>Banks, <00:30:35.833>you <00:30:36.066>can <00:30:36.300>still <00:30:36.533>see <00:30:36.766>it. <00:30:37.000>You

610
00:30:38.700 --> 00:30:41.600
<00:30:38.700>have <00:30:38.933>people <00:30:39.166>who <00:30:39.400>work <00:30:39.633>for <00:30:39.866>the <00:30:40.100>for

611
00:30:41.600 --> 00:30:44.400
<00:30:41.600>the <00:30:41.774>customer <00:30:41.949>accounts. <00:30:42.125>You <00:30:42.300>have <00:30:42.475>people <00:30:42.649>who <00:30:42.824>are <00:30:43.000>selling

612
00:30:44.400 --> 00:30:47.600
<00:30:44.400>securities <00:30:44.633>and <00:30:44.866>you <00:30:45.100>have <00:30:45.333>accredited <00:30:45.566>department <00:30:45.800>and

613
00:30:47.600 --> 00:30:50.700
<00:30:47.600>very <00:30:47.833>very <00:30:48.066>often <00:30:48.300>these <00:30:48.533>different <00:30:48.766>departments <00:30:49.000>have

614
00:30:50.700 --> 00:30:53.400
<00:30:50.700>their <00:30:50.980>proper <00:30:51.260>software. <00:30:51.540>Each <00:30:51.820>of <00:30:52.100>them

615
00:30:53.400 --> 00:30:56.600
<00:30:53.400>has <00:30:53.540>their <00:30:53.680>own <00:30:53.820>software. <00:30:53.960>I <00:30:54.100>don't <00:30:54.240>know <00:30:54.380>if <00:30:54.520>it's <00:30:54.660>with <00:30:54.800>your

616
00:30:56.600 --> 00:30:59.500
<00:30:56.600>bank <00:30:56.740>still <00:30:56.879>like <00:30:57.020>that. <00:30:57.159>You <00:30:57.300>are <00:30:57.439>in <00:30:57.580>the <00:30:57.719>online <00:30:57.860>banking <00:30:58.000>and

617
00:30:59.500 --> 00:31:02.400
<00:30:59.500>then <00:30:59.655>you <00:30:59.811>want <00:30:59.966>to <00:31:00.122>look <00:31:00.277>at <00:31:00.433>your <00:31:00.588>securities <00:31:00.744>and <00:31:00.900>you

618
00:31:02.400 --> 00:31:06.000
<00:31:02.400>are <00:31:02.633>moved <00:31:02.866>into <00:31:03.100>a <00:31:03.333>very <00:31:03.566>different <00:31:03.800>software.

619
00:31:06.900 --> 00:31:10.200
<00:31:06.900>This <00:31:07.366>is <00:31:07.833>a <00:31:08.300>cat

620
00:31:09.200 --> 00:31:12.700
<00:31:09.200>in <00:31:09.480>this <00:31:09.760>in <00:31:10.040>the <00:31:10.320>software <00:31:10.600>structure

621
00:31:12.700 --> 00:31:15.200
<00:31:12.700>following <00:31:12.980>the <00:31:13.260>the <00:31:13.540>departments <00:31:13.820>in <00:31:14.100>the

622
00:31:15.200 --> 00:31:16.900
<00:31:15.200>organization, <00:31:15.550>and <00:31:15.900>it's <00:31:16.250>not <00:31:16.600>stupid.

623
00:31:18.600 --> 00:31:21.900
<00:31:18.600>If <00:31:18.774>you <00:31:18.949>want <00:31:19.125>to <00:31:19.300>find <00:31:19.475>out <00:31:19.649>how <00:31:19.824>modular <00:31:20.000>your

624
00:31:21.900 --> 00:31:24.200
<00:31:21.900>software <00:31:22.180>is <00:31:22.460>because <00:31:22.740>this <00:31:23.020>is <00:31:23.300>what

625
00:31:24.200 --> 00:31:27.300
<00:31:24.200>the <00:31:24.400>management <00:31:24.600>often <00:31:24.800>asks <00:31:25.000>us. <00:31:25.200>They <00:31:25.400>asked <00:31:25.600>us

626
00:31:27.300 --> 00:31:30.400
<00:31:27.300>well, <00:31:27.427>how <00:31:27.554>are <00:31:27.681>you <00:31:27.809>looked <00:31:27.936>at <00:31:28.063>it? <00:31:28.190>Give <00:31:28.318>it <00:31:28.445>give <00:31:28.572>it <00:31:28.700>a

627
00:31:30.400 --> 00:31:32.400
<00:31:30.400>number, <00:31:30.600>you <00:31:30.800>know, <00:31:31.000>is <00:31:31.200>it <00:31:31.400>good <00:31:31.600>or <00:31:31.800>bad?

628
00:31:33.800 --> 00:31:36.800
<00:31:33.800>We <00:31:34.000>we <00:31:34.200>worked <00:31:34.399>on <00:31:34.600>it <00:31:34.800>and <00:31:35.000>we <00:31:35.200>created

629
00:31:36.800 --> 00:31:40.300
<00:31:36.800>something <00:31:37.033>that <00:31:37.266>is <00:31:37.500>called <00:31:37.733>modularity <00:31:37.966>maturity <00:31:38.200>index.

630
00:31:39.300 --> 00:31:42.400
<00:31:39.300>It <00:31:40.000>ranges <00:31:40.700>from

631
00:31:42.400 --> 00:31:43.600
<00:31:42.400>0 <00:31:42.940>to <00:31:43.480>10.

632
00:31:44.600 --> 00:31:47.500
<00:31:44.600>If <00:31:44.833>you <00:31:45.066>are <00:31:45.300>if <00:31:45.533>your <00:31:45.766>modularity <00:31:46.000>is

633
00:31:47.500 --> 00:31:50.300
<00:31:47.500>not <00:31:47.733>good <00:31:47.966>you're <00:31:48.200>down <00:31:48.433>here <00:31:48.666>if <00:31:48.900>it's

634
00:31:50.300 --> 00:31:53.100
<00:31:50.300>okay <00:31:50.500>ish. <00:31:50.700>You're <00:31:50.899>somewhere <00:31:51.100>here <00:31:51.300>and <00:31:51.500>if <00:31:51.700>it's

635
00:31:53.100 --> 00:31:56.100
<00:31:53.100>really <00:31:53.240>good <00:31:53.379>you <00:31:53.520>are <00:31:53.659>up <00:31:53.800>there <00:31:53.939>and <00:31:54.080>I <00:31:54.219>will <00:31:54.360>show <00:31:54.500>you

636
00:31:56.100 --> 00:31:59.900
<00:31:56.100>now <00:31:56.300>18 <00:31:56.500>systems <00:31:56.699>that <00:31:56.899>we <00:31:57.100>have <00:31:57.300>analyzed <00:31:57.500>and

637
00:31:59.900 --> 00:32:03.600
<00:31:59.900>how <00:32:00.133>they <00:32:00.366>measured <00:32:00.600>in <00:32:00.833>there. <00:32:01.066>This <00:32:01.300>was

638
00:32:03.600 --> 00:32:06.500
<00:32:03.600>the <00:32:03.755>first <00:32:03.911>one <00:32:04.066>that <00:32:04.222>we <00:32:04.377>looked <00:32:04.533>at <00:32:04.688>like <00:32:04.844>a <00:32:05.000>bit

639
00:32:06.500 --> 00:32:09.900
<00:32:06.500>more <00:32:06.640>than <00:32:06.780>half <00:32:06.920>a <00:32:07.060>million. <00:32:07.200>This <00:32:07.340>was <00:32:07.480>really <00:32:07.620>bad. <00:32:07.760>This <00:32:07.900>huge

640
00:32:09.900 --> 00:32:12.200
<00:32:09.900>one <00:32:10.075>was <00:32:10.250>the <00:32:10.425>second <00:32:10.600>one. <00:32:10.775>It's <00:32:10.950>it's <00:32:11.125>very <00:32:11.300>good.

641
00:32:12.200 --> 00:32:15.300
<00:32:12.200>So <00:32:12.400>on <00:32:12.600>this <00:32:12.800>axis, <00:32:13.000>there's <00:32:13.200>only <00:32:13.400>the <00:32:13.600>time

642
00:32:16.700 --> 00:32:19.400
<00:32:16.700>These <00:32:16.933>all <00:32:17.166>these <00:32:17.400>systems <00:32:17.633>have <00:32:17.866>been <00:32:18.100>developed

643
00:32:19.400 --> 00:32:22.500
<00:32:19.400>in <00:32:19.680>different <00:32:19.960>programming <00:32:20.240>languages. <00:32:20.520>This <00:32:20.800>is

644
00:32:22.500 --> 00:32:25.100
<00:32:22.500>Java. <00:32:22.700>This <00:32:22.900>is <00:32:23.100>a <00:32:23.300>really <00:32:23.500>huge <00:32:23.700>Java <00:32:23.900>system

645
00:32:25.100 --> 00:32:28.300
<00:32:25.100>owned <00:32:25.300>by <00:32:25.500>the <00:32:25.699>technical <00:32:25.899>Casa <00:32:26.100>in <00:32:26.300>Germany, <00:32:26.500>which

646
00:32:28.300 --> 00:32:31.900
<00:32:28.300>is <00:32:28.455>an <00:32:28.611>insurance <00:32:28.766>if <00:32:28.922>you're <00:32:29.077>insured <00:32:29.233>there <00:32:29.388>keep <00:32:29.544>calm <00:32:29.700>they

647
00:32:31.900 --> 00:32:34.800
<00:32:31.900>do <00:32:32.180>have <00:32:32.460>a <00:32:32.740>good <00:32:33.020>architecture. <00:32:33.300>Yeah.

648
00:32:35.300 --> 00:32:38.200
<00:32:35.300>For <00:32:35.416>the <00:32:35.533>good <00:32:35.649>ones <00:32:35.766>I <00:32:35.883>can <00:32:36.000>say <00:32:36.116>the <00:32:36.233>names, <00:32:36.350>you <00:32:36.466>know, <00:32:36.583>but <00:32:36.700>this

649
00:32:38.200 --> 00:32:40.300
<00:32:38.200>one <00:32:38.480>down <00:32:38.760>here <00:32:39.040>is <00:32:39.320>Java <00:32:39.600>2.

650
00:32:41.500 --> 00:32:44.000
<00:32:41.500>horrible <00:32:42.200>system <00:32:42.900>unbelievable

651
00:32:44.800 --> 00:32:47.900
<00:32:44.800>with <00:32:45.149>with <00:32:45.500>a <00:32:45.850>web <00:32:46.200>or

652
00:32:47.900 --> 00:32:50.200
<00:32:47.900>yeah <00:32:48.133>someday <00:32:48.366>I <00:32:48.600>gonna <00:32:48.833>tell <00:32:49.066>the <00:32:49.300>story.

653
00:32:50.200 --> 00:32:53.500
<00:32:50.200>This <00:32:50.480>one <00:32:50.760>is <00:32:51.040>C <00:32:51.320>Sharp, <00:32:51.600>but

654
00:32:53.500 --> 00:32:56.600
<00:32:53.500>and <00:32:53.700>this <00:32:53.900>one <00:32:54.100>too <00:32:54.300>and <00:32:54.500>this <00:32:54.700>one <00:32:54.900>is

655
00:32:56.600 --> 00:32:59.200
<00:32:56.600>a <00:32:56.879>huge <00:32:57.159>c-sharp <00:32:57.439>system, <00:32:57.719>which <00:32:58.000>is

656
00:32:59.200 --> 00:33:02.300
<00:32:59.200>a <00:32:59.666>a <00:33:00.133>possibility <00:33:00.600>and

657
00:33:02.300 --> 00:33:05.300
<00:33:02.300>an <00:33:02.580>alternative <00:33:02.860>to <00:33:03.139>sap <00:33:03.419>that <00:33:03.700>is

658
00:33:05.300 --> 00:33:08.500
<00:33:05.300>created <00:33:05.533>and <00:33:05.766>Romania <00:33:06.000>a <00:33:06.233>great <00:33:06.466>Software <00:33:06.700>System

659
00:33:08.500 --> 00:33:11.300
<00:33:08.500>impressive <00:33:08.780>Architects, <00:33:09.060>and <00:33:09.340>I <00:33:09.620>never <00:33:09.900>thought

660
00:33:11.300 --> 00:33:14.400
<00:33:11.300>I <00:33:11.500>would <00:33:11.700>ever <00:33:11.899>meet <00:33:12.100>a <00:33:12.300>huge <00:33:12.500>sea <00:33:12.700>shop

661
00:33:14.400 --> 00:33:17.300
<00:33:14.400>system <00:33:14.600>like <00:33:14.800>that. <00:33:15.000>So <00:33:15.200>really <00:33:15.400>great. <00:33:15.600>There <00:33:15.800>is

662
00:33:17.300 --> 00:33:20.300
<00:33:17.300>PHP <00:33:17.500>in <00:33:17.700>here <00:33:17.899>it <00:33:18.100>has <00:33:18.300>nothing <00:33:18.500>to <00:33:18.700>do

663
00:33:20.300 --> 00:33:24.200
<00:33:20.300>with <00:33:20.455>the <00:33:20.611>language <00:33:20.766>is <00:33:20.922>has <00:33:21.077>only <00:33:21.233>to <00:33:21.388>do <00:33:21.544>with <00:33:21.700>you

664
00:33:23.200 --> 00:33:27.300
<00:33:23.200>if <00:33:23.550>you <00:33:23.900>understand <00:33:24.250>what <00:33:24.600>modularity

665
00:33:26.300 --> 00:33:29.800
<00:33:26.300>is <00:33:26.649>actually <00:33:27.000>about <00:33:27.350>hi <00:33:27.700>cohesion

666
00:33:29.800 --> 00:33:32.300
<00:33:29.800>and <00:33:30.149>lose <00:33:30.500>coupling. <00:33:30.850>So <00:33:31.200>this

667
00:33:32.300 --> 00:33:35.000
<00:33:32.300>is <00:33:32.455>the <00:33:32.611>goal <00:33:32.766>and <00:33:32.922>I <00:33:33.077>hope <00:33:33.233>after <00:33:33.388>this <00:33:33.544>talk, <00:33:33.700>you

668
00:33:35.200 --> 00:33:38.000
<00:33:35.200>will <00:33:35.400>never <00:33:35.600>forget. <00:33:35.800>I <00:33:36.000>lose <00:33:36.200>company. <00:33:36.400>No, <00:33:36.600>no.

669
00:33:38.700 --> 00:33:42.500
<00:33:38.700>If <00:33:38.855>you <00:33:39.011>go <00:33:39.166>off <00:33:39.322>with <00:33:39.477>that, <00:33:39.633>I'm <00:33:39.788>happy. <00:33:39.944>We <00:33:40.100>are

670
00:33:42.500 --> 00:33:45.400
<00:33:42.500>looking <00:33:42.675>at <00:33:42.850>these <00:33:43.025>systems <00:33:43.200>with <00:33:43.375>with <00:33:43.550>all <00:33:43.725>kinds <00:33:43.900>of

671
00:33:45.400 --> 00:33:48.300
<00:33:45.400>tools <00:33:45.750>here. <00:33:46.100>Just <00:33:46.450>some <00:33:46.800>tools

672
00:33:48.300 --> 00:33:52.300
<00:33:48.300>that <00:33:48.440>we <00:33:48.580>are <00:33:48.720>using <00:33:48.860>there <00:33:49.000>are <00:33:49.139>many <00:33:49.280>more <00:33:49.419>there <00:33:49.560>are <00:33:49.700>websites

673
00:33:51.300 --> 00:33:54.400
<00:33:51.300>and <00:33:51.580>their <00:33:51.860>sites <00:33:52.139>and <00:33:52.419>Wikipedia <00:33:52.700>with

674
00:33:54.400 --> 00:33:57.300
<00:33:54.400>names <00:33:54.600>of <00:33:54.800>tools. <00:33:55.000>So <00:33:55.200>don't <00:33:55.400>worry. <00:33:55.600>We <00:33:55.800>will

675
00:33:57.300 --> 00:33:59.300
<00:33:57.300>find <00:33:57.533>the <00:33:57.766>right <00:33:58.000>tool <00:33:58.233>for <00:33:58.466>you <00:33:58.700>and

676
00:34:00.700 --> 00:34:03.500
<00:34:00.700>If <00:34:00.900>you <00:34:01.100>want <00:34:01.300>to <00:34:01.500>do <00:34:01.700>real <00:34:01.900>architecture <00:34:02.100>work,

677
00:34:03.500 --> 00:34:06.400
<00:34:03.500>this <00:34:03.700>is <00:34:03.900>what <00:34:04.100>we <00:34:04.300>like <00:34:04.500>the <00:34:04.700>most, <00:34:04.900>you

678
00:34:06.400 --> 00:34:09.100
<00:34:06.400>know, <00:34:06.555>discussing <00:34:06.711>the <00:34:06.866>architecture <00:34:07.022>in <00:34:07.177>front <00:34:07.333>of <00:34:07.488>a <00:34:07.644>tool <00:34:07.800>with

679
00:34:09.100 --> 00:34:13.200
<00:34:09.100>the <00:34:09.239>people. <00:34:09.380>Should <00:34:09.520>we <00:34:09.659>put <00:34:09.799>this <00:34:09.940>class <00:34:10.080>here <00:34:10.219>should <00:34:10.360>this <00:34:10.500>package

680
00:34:12.200 --> 00:34:15.400
<00:34:12.199>tree <00:34:12.433>go <00:34:12.666>over <00:34:12.899>there <00:34:13.133>would <00:34:13.366>then <00:34:13.600>the

681
00:34:15.400 --> 00:34:18.200
<00:34:15.400>structure <00:34:15.575>be <00:34:15.750>better? <00:34:15.925>Where <00:34:16.100>should <00:34:16.275>we <00:34:16.450>refactor? <00:34:16.625>Where <00:34:16.800>should

682
00:34:18.200 --> 00:34:21.200
<00:34:18.199>we <00:34:18.399>restructure <00:34:18.600>to <00:34:18.799>get <00:34:19.000>closer <00:34:19.199>and <00:34:19.399>closer <00:34:19.600>to

683
00:34:21.200 --> 00:34:24.300
<00:34:21.199>a <00:34:21.355>good <00:34:21.511>modular <00:34:21.666>system. <00:34:21.822>So <00:34:21.977>tools <00:34:22.133>where <00:34:22.288>you <00:34:22.444>can <00:34:22.600>do

684
00:34:24.300 --> 00:34:27.300
<00:34:24.300>that <00:34:24.580>they <00:34:24.860>are <00:34:25.140>in <00:34:25.420>general. <00:34:25.700>They

685
00:34:27.300 --> 00:34:30.900
<00:34:27.300>cost <00:34:27.533>money. <00:34:27.766>I'm <00:34:28.000>sorry. <00:34:28.233>Okay <00:34:28.466>open <00:34:28.700>source

686
00:34:30.900 --> 00:34:33.600
<00:34:30.900>is <00:34:31.075>just <00:34:31.250>for <00:34:31.425>measuring <00:34:31.600>you <00:34:31.775>will <00:34:31.950>get <00:34:32.125>measures <00:34:32.300>you

687
00:34:33.600 --> 00:34:36.800
<00:34:33.600>will <00:34:33.833>get <00:34:34.066>so <00:34:34.299>many <00:34:34.533>measures <00:34:34.766>you <00:34:35.000>will

688
00:34:36.800 --> 00:34:39.200
<00:34:36.800>have <00:34:36.975>problems <00:34:37.150>to <00:34:37.325>understand <00:34:37.500>them <00:34:37.675>all <00:34:37.850>but <00:34:38.025>if <00:34:38.200>you

689
00:34:39.200 --> 00:34:42.800
<00:34:39.199>want <00:34:39.375>to <00:34:39.549>do <00:34:39.725>architecture <00:34:39.899>work, <00:34:40.074>I'm <00:34:40.250>sorry. <00:34:40.424>It <00:34:40.600>costs

690
00:34:42.800 --> 00:34:45.400
<00:34:42.800>money. <00:34:42.975>This <00:34:43.150>is <00:34:43.325>nothing <00:34:43.500>I <00:34:43.675>can <00:34:43.850>I <00:34:44.025>cannot <00:34:44.200>tell

691
00:34:45.400 --> 00:34:48.600
<00:34:45.400>you <00:34:45.680>anything <00:34:45.960>different. <00:34:46.240>Okay. <00:34:46.520>Thank <00:34:46.800>you

692
00:34:48.600 --> 00:34:51.500
<00:34:48.600>for <00:34:48.833>your <00:34:49.066>attention. <00:34:49.299>I <00:34:49.533>hope <00:34:49.766>I <00:34:50.000>gave

693
00:34:51.500 --> 00:34:54.600
<00:34:51.500>you <00:34:51.733>some <00:34:51.966>valuable <00:34:52.199>information. <00:34:52.433>I'm <00:34:52.666>here. <00:34:52.900>We

694
00:34:54.600 --> 00:34:57.100
<00:34:54.600>still <00:34:54.880>have <00:34:55.159>eight <00:34:55.440>minutes <00:34:55.719>for <00:34:56.000>questions.

695
00:34:57.800 --> 00:35:00.300
<00:34:57.800>You <00:34:57.955>can <00:34:58.111>as <00:34:58.266>well <00:34:58.422>write <00:34:58.577>me <00:34:58.733>in <00:34:58.888>the <00:34:59.044>app. <00:34:59.200>I

696
00:35:00.300 --> 00:35:03.300
<00:35:00.300>will <00:35:00.455>answer <00:35:00.611>you <00:35:00.766>can <00:35:00.922>as <00:35:01.077>well <00:35:01.233>talk <00:35:01.388>to <00:35:01.544>me <00:35:01.700>on

697
00:35:03.300 --> 00:35:07.300
<00:35:03.300>Twitter <00:35:03.455>or <00:35:03.611>with <00:35:03.766>my <00:35:03.922>email <00:35:04.077>account. <00:35:04.233>So <00:35:04.388>I'm <00:35:04.544>findable, <00:35:04.700>you

698
00:35:06.300 --> 00:35:08.300
<00:35:06.300>know, <00:35:07.700>okay.

699
00:35:09.100 --> 00:35:13.400
<00:35:09.100>Now <00:35:09.255>I <00:35:09.411>will <00:35:09.566>try <00:35:09.722>to <00:35:09.877>have <00:35:10.033>a <00:35:10.188>look <00:35:10.344>for <00:35:10.500>the

700
00:35:13.400 --> 00:35:14.200
questions.

701
00:35:16.800 --> 00:35:17.000
<00:35:16.800>Thank <00:35:16.980>you.

702
00:35:25.200 --> 00:35:26.300
Yeah.

703
00:35:29.400 --> 00:35:29.900
<00:35:29.400>Thank <00:35:29.550>you <00:35:29.700>very <00:35:29.850>much.

704
00:35:31.200 --> 00:35:34.400
<00:35:31.200>We <00:35:31.316>are <00:35:31.433>not <00:35:31.549>seeing <00:35:31.666>the <00:35:31.783>question. <00:35:31.899>I <00:35:32.016>saw <00:35:32.133>it <00:35:32.250>from <00:35:32.366>my <00:35:32.483>phone <00:35:32.600>that

705
00:35:34.400 --> 00:35:36.200
<00:35:34.400>we <00:35:34.633>have <00:35:34.866>a <00:35:35.100>lot <00:35:35.333>of <00:35:35.566>questions. <00:35:35.800>Oh.

706
00:35:38.900 --> 00:35:40.800
<00:35:38.900>cool <00:35:39.600>and <00:35:40.300>a

707
00:35:42.500 --> 00:35:44.300
<00:35:42.500>Yes, <00:35:42.966>you <00:35:43.433>can <00:35:43.900>vote.

708
00:35:45.500 --> 00:35:48.800
<00:35:45.500>Yes, <00:35:45.700>in <00:35:45.900>fact, <00:35:46.100>I'm <00:35:46.300>starting <00:35:46.500>from <00:35:46.700>most <00:35:46.900>uploaded.

709
00:35:49.500 --> 00:35:53.600
<00:35:49.500>How <00:35:49.700>do <00:35:49.900>you <00:35:50.100>avoid <00:35:50.300>copy <00:35:50.500>paste <00:35:50.700>of <00:35:50.900>wow

710
00:35:52.600 --> 00:35:55.300
<00:35:52.600>so <00:35:52.950>many <00:35:53.299>coming <00:35:53.650>how <00:35:54.000>do

711
00:35:55.300 --> 00:35:58.300
<00:35:55.300>you <00:35:55.455>avoid <00:35:55.611>copy <00:35:55.766>paste <00:35:55.922>of <00:35:56.077>almost <00:35:56.233>similar <00:35:56.388>domain <00:35:56.544>models <00:35:56.700>between

712
00:35:58.300 --> 00:35:59.300
<00:35:58.300>different <00:35:58.750>domains? <00:35:59.200>Yes.

713
00:36:00.400 --> 00:36:03.600
<00:36:00.400>Actually, <00:36:00.600>if <00:36:00.800>you <00:36:01.000>have <00:36:01.200>a <00:36:01.400>huge <00:36:01.600>monolith <00:36:01.800>with

714
00:36:03.600 --> 00:36:06.100
<00:36:03.600>a <00:36:04.066>big <00:36:04.533>domain <00:36:05.000>model,

715
00:36:06.100 --> 00:36:09.200
<00:36:06.100>then <00:36:06.275>the <00:36:06.450>first <00:36:06.625>thing <00:36:06.799>is <00:36:06.975>to <00:36:07.150>do <00:36:07.325>copy <00:36:07.500>and

716
00:36:09.200 --> 00:36:12.300
<00:36:09.200>paste <00:36:09.399>to <00:36:09.600>get <00:36:09.799>it <00:36:10.000>apart <00:36:10.200>and <00:36:10.399>then <00:36:10.600>you

717
00:36:12.300 --> 00:36:15.700
<00:36:12.300>reduce <00:36:12.475>it <00:36:12.650>to <00:36:12.825>the <00:36:13.000>thing <00:36:13.175>that <00:36:13.350>is <00:36:13.525>actually <00:36:13.700>needed

718
00:36:15.700 --> 00:36:18.500
<00:36:15.700>in <00:36:15.933>that <00:36:16.166>domain. <00:36:16.399>I'm <00:36:16.633>I <00:36:16.866>from <00:36:17.100>my

719
00:36:18.500 --> 00:36:21.800
<00:36:18.500>experience. <00:36:18.675>If <00:36:18.850>you <00:36:19.025>do <00:36:19.200>it, <00:36:19.375>right <00:36:19.550>you <00:36:19.725>will <00:36:19.900>not

720
00:36:21.800 --> 00:36:24.700
<00:36:21.800>have <00:36:21.955>a <00:36:22.111>lot <00:36:22.266>of <00:36:22.422>copy <00:36:22.577>of <00:36:22.733>paste <00:36:22.888>and <00:36:23.044>paste. <00:36:23.200>Yeah,

721
00:36:24.700 --> 00:36:27.500
<00:36:24.700>because <00:36:24.899>you <00:36:25.100>have <00:36:25.299>you <00:36:25.500>need <00:36:25.700>specific <00:36:25.899>models <00:36:26.100>if

722
00:36:27.500 --> 00:36:31.200
<00:36:27.500>the <00:36:27.675>customer <00:36:27.850>is <00:36:28.025>in <00:36:28.200>the <00:36:28.375>end <00:36:28.550>is <00:36:28.725>everywhere <00:36:28.900>then

723
00:36:30.200 --> 00:36:33.300
<00:36:30.200>something <00:36:30.433>went <00:36:30.666>wrong, <00:36:30.899>you <00:36:31.133>know, <00:36:31.366>so <00:36:31.600>this

724
00:36:33.300 --> 00:36:37.100
<00:36:33.300>is <00:36:33.455>not <00:36:33.611>the <00:36:33.766>idea <00:36:33.922>to <00:36:34.077>have <00:36:34.233>every <00:36:34.388>class <00:36:34.544>everywhere. <00:36:34.700>This

725
00:36:36.100 --> 00:36:39.900
<00:36:36.100>is <00:36:36.299>not <00:36:36.500>the <00:36:36.700>idea <00:36:36.900>what <00:36:37.100>if <00:36:37.299>our <00:36:37.500>sub

726
00:36:39.900 --> 00:36:41.900
<00:36:39.900>domains <00:36:40.366>share <00:36:40.833>similar <00:36:41.300>functionality

727
00:36:42.600 --> 00:36:45.600
<00:36:42.600>Where <00:36:42.799>you <00:36:43.000>should <00:36:43.200>put <00:36:43.400>it <00:36:43.600>in? <00:36:43.799>Yeah, <00:36:44.000>well.

728
00:36:46.300 --> 00:36:47.000
<00:36:46.300>It <00:36:46.930>depends.

729
00:36:50.100 --> 00:36:54.100
<00:36:50.100>Yeah, <00:36:50.207>not <00:36:50.315>my <00:36:50.423>I <00:36:50.530>mean <00:36:50.638>really <00:36:50.746>you <00:36:50.853>have <00:36:50.961>to <00:36:51.069>look <00:36:51.176>at <00:36:51.284>the <00:36:51.392>specific <00:36:51.500>problem

730
00:36:53.100 --> 00:36:56.500
<00:36:53.100>to <00:36:53.380>answer <00:36:53.660>this <00:36:53.940>question. <00:36:54.220>Well, <00:36:54.500>you

731
00:36:56.500 --> 00:36:59.700
<00:36:56.500>know, <00:36:56.733>don't <00:36:56.966>you <00:36:57.200>so <00:36:57.433>it <00:36:57.666>really <00:36:57.900>depends

732
00:36:59.700 --> 00:37:03.300
<00:36:59.700>if <00:37:00.166>this <00:37:00.633>is <00:37:01.100>a

733
00:37:02.300 --> 00:37:05.300
<00:37:02.300>similar <00:37:02.650>function <00:37:03.000>something <00:37:03.350>that <00:37:03.700>could

734
00:37:05.300 --> 00:37:08.700
<00:37:05.300>live <00:37:05.475>on <00:37:05.650>its <00:37:05.825>own <00:37:06.000>in <00:37:06.175>its <00:37:06.350>own <00:37:06.525>bounded <00:37:06.700>context

735
00:37:08.700 --> 00:37:11.900
<00:37:08.700>because <00:37:08.980>it's <00:37:09.259>a <00:37:09.540>functionality <00:37:09.819>that <00:37:10.100>and

736
00:37:11.900 --> 00:37:14.900
<00:37:11.900>living <00:37:12.100>on <00:37:12.300>its <00:37:12.500>own <00:37:12.700>means <00:37:12.900>this <00:37:13.100>functionality <00:37:13.300>does

737
00:37:14.900 --> 00:37:18.600
<00:37:14.900>not <00:37:15.250>need <00:37:15.600>anything <00:37:15.950>synchronously <00:37:16.300>from

738
00:37:18.600 --> 00:37:21.800
<00:37:18.600>someone <00:37:18.775>else. <00:37:18.950>It <00:37:19.125>can <00:37:19.299>do <00:37:19.475>its <00:37:19.650>work <00:37:19.825>send <00:37:20.000>something

739
00:37:21.800 --> 00:37:24.300
<00:37:21.800>over <00:37:22.033>to <00:37:22.266>someone <00:37:22.500>else <00:37:22.733>and <00:37:22.966>then <00:37:23.200>they

740
00:37:24.300 --> 00:37:27.300
<00:37:24.300>proceed <00:37:24.475>or <00:37:24.650>wait <00:37:24.825>for <00:37:25.000>something <00:37:25.175>that <00:37:25.350>comes <00:37:25.525>and <00:37:25.700>then

741
00:37:27.300 --> 00:37:30.200
<00:37:27.300>does <00:37:27.455>it's <00:37:27.611>work. <00:37:27.766>If <00:37:27.922>this <00:37:28.077>is <00:37:28.233>possible, <00:37:28.388>then <00:37:28.544>you <00:37:28.700>can

742
00:37:30.200 --> 00:37:33.300
<00:37:30.200>take <00:37:30.375>this <00:37:30.549>functionality <00:37:30.725>from <00:37:30.899>a <00:37:31.075>two-bounded <00:37:31.250>context <00:37:31.424>and <00:37:31.600>create

743
00:37:33.300 --> 00:37:36.600
<00:37:33.300>a <00:37:33.475>new <00:37:33.650>bounded <00:37:33.825>context <00:37:34.000>for <00:37:34.175>it. <00:37:34.350>If <00:37:34.525>not, <00:37:34.700>you

744
00:37:36.600 --> 00:37:40.000
<00:37:36.600>will <00:37:36.799>have <00:37:37.000>to <00:37:37.200>live <00:37:37.400>with <00:37:37.600>the <00:37:37.799>doublications <00:37:38.000>and

745
00:37:39.000 --> 00:37:40.400
actually

746
00:37:41.700 --> 00:37:44.400
<00:37:41.700>I'm <00:37:41.933>sure <00:37:42.166>that <00:37:42.399>the <00:37:42.633>company <00:37:42.866>you're <00:37:43.100>working

747
00:37:44.400 --> 00:37:47.900
<00:37:44.400>in <00:37:44.633>has <00:37:44.866>a <00:37:45.100>huge <00:37:45.333>it <00:37:45.566>landscape <00:37:45.800>with

748
00:37:47.900 --> 00:37:51.800
<00:37:47.900>many <00:37:48.250>software <00:37:48.600>systems <00:37:48.950>all <00:37:49.300>separated

749
00:37:50.800 --> 00:37:53.500
<00:37:50.800>and <00:37:51.266>all <00:37:51.733>sharing <00:37:52.200>data

750
00:37:53.500 --> 00:37:57.700
<00:37:53.500>data <00:37:53.700>to <00:37:53.900>work <00:37:54.100>and <00:37:54.300>there <00:37:54.500>is <00:37:54.700>similar <00:37:54.900>functionality

751
00:37:56.700 --> 00:38:00.100
<00:37:56.700>in <00:37:56.899>all <00:37:57.100>of <00:37:57.299>them. <00:37:57.500>This <00:37:57.700>is <00:37:57.899>normal. <00:37:58.100>We

752
00:37:59.100 --> 00:38:02.200
<00:37:59.100>do <00:37:59.333>have <00:37:59.566>it <00:37:59.799>in <00:38:00.033>our <00:38:00.266>Landscapes. <00:38:00.500>So

753
00:38:02.200 --> 00:38:05.300
<00:38:02.200>there's <00:38:02.399>no <00:38:02.600>not <00:38:02.799>so <00:38:03.000>much <00:38:03.200>in <00:38:03.399>my <00:38:03.600>mind.

754
00:38:05.300 --> 00:38:08.500
<00:38:05.300>There's <00:38:05.475>not <00:38:05.650>so <00:38:05.825>much <00:38:06.000>so <00:38:06.175>much <00:38:06.350>space <00:38:06.525>for <00:38:06.700>fear

755
00:38:08.500 --> 00:38:11.500
<00:38:08.500>about <00:38:08.850>duplication <00:38:09.200>and <00:38:09.550>stuff. <00:38:09.900>You

756
00:38:11.500 --> 00:38:14.800
<00:38:11.500>know, <00:38:11.640>this <00:38:11.780>is <00:38:11.920>not <00:38:12.060>a <00:38:12.200>big <00:38:12.340>problem <00:38:12.480>in <00:38:12.620>the <00:38:12.760>end. <00:38:12.900>That's

757
00:38:14.800 --> 00:38:17.800
<00:38:14.800>a <00:38:15.080>long <00:38:15.360>one <00:38:15.640>monolith <00:38:15.920>verse <00:38:16.200>micro

758
00:38:17.800 --> 00:38:20.800
<00:38:17.800>services <00:38:18.080>for <00:38:18.360>startup <00:38:18.640>which <00:38:18.920>approaches <00:38:19.200>better

759
00:38:20.800 --> 00:38:23.900
<00:38:20.800>or <00:38:21.000>learning <00:38:21.200>stage <00:38:21.400>of <00:38:21.600>up <00:38:21.800>development. <00:38:22.000>Is <00:38:22.200>it

760
00:38:23.900 --> 00:38:26.500
<00:38:23.900>better <00:38:24.075>to <00:38:24.250>start <00:38:24.425>with <00:38:24.600>modern <00:38:24.775>texture <00:38:24.950>to <00:38:25.125>avoid <00:38:25.300>extra

761
00:38:26.500 --> 00:38:30.100
<00:38:26.500>reward <00:38:26.780>while <00:38:27.060>distilling <00:38:27.340>our <00:38:27.620>own <00:38:27.900>autonomous

762
00:38:29.100 --> 00:38:32.300
<00:38:29.100>domain <00:38:29.299>model <00:38:29.500>or <00:38:29.700>not? <00:38:29.900>Yes, <00:38:30.100>very <00:38:30.299>good <00:38:30.500>question.

763
00:38:32.300 --> 00:38:35.900
<00:38:32.300>Whenever <00:38:32.533>you <00:38:32.766>started <00:38:33.000>a <00:38:33.233>new <00:38:33.466>project <00:38:33.700>with

764
00:38:35.900 --> 00:38:38.300
<00:38:35.900>a <00:38:36.180>new <00:38:36.460>software <00:38:36.740>start <00:38:37.020>with <00:38:37.300>the

765
00:38:38.300 --> 00:38:40.800
<00:38:38.300>good <00:38:39.000>structured <00:38:39.700>monolith.

766
00:38:41.600 --> 00:38:44.400
<00:38:41.600>And <00:38:41.755>because <00:38:41.911>you <00:38:42.066>have <00:38:42.222>to <00:38:42.377>learn <00:38:42.533>so <00:38:42.688>much <00:38:42.844>about <00:38:43.000>the

767
00:38:44.400 --> 00:38:47.300
<00:38:44.400>domain, <00:38:44.680>but <00:38:44.960>don't <00:38:45.240>do <00:38:45.520>Cycles. <00:38:45.800>You

768
00:38:47.300 --> 00:38:49.800
<00:38:47.300>have <00:38:47.440>seen <00:38:47.580>this <00:38:47.720>the <00:38:47.860>big <00:38:48.000>ball <00:38:48.140>of <00:38:48.280>mud <00:38:48.420>stuff, <00:38:48.560>you <00:38:48.700>know.

769
00:38:50.700 --> 00:38:53.300
<00:38:50.700>Structure <00:38:50.980>your <00:38:51.259>your <00:38:51.540>classes <00:38:51.819>in <00:38:52.100>a

770
00:38:53.300 --> 00:38:56.800
<00:38:53.300>good <00:38:53.407>manner <00:38:53.515>where <00:38:53.623>you <00:38:53.730>know <00:38:53.838>where <00:38:53.946>it's <00:38:54.053>up <00:38:54.161>and <00:38:54.269>down <00:38:54.376>left <00:38:54.484>and <00:38:54.592>right <00:38:54.700>without

771
00:38:56.800 --> 00:39:00.100
<00:38:56.800>cycles <00:38:56.975>and <00:38:57.150>then <00:38:57.325>you <00:38:57.500>can <00:38:57.675>divide <00:38:57.850>the <00:38:58.025>thing <00:38:58.200>after

772
00:38:59.100 --> 00:39:02.400
<00:38:59.100>a <00:38:59.333>time. <00:38:59.566>When <00:38:59.799>you <00:39:00.033>see <00:39:00.266>where <00:39:00.500>the

773
00:39:02.400 --> 00:39:05.100
<00:39:02.400>cut <00:39:02.555>should <00:39:02.711>be <00:39:02.866>and <00:39:03.022>you <00:39:03.177>have <00:39:03.333>enough <00:39:03.488>people <00:39:03.644>and <00:39:03.800>you

774
00:39:05.100 --> 00:39:07.700
<00:39:05.100>gonna <00:39:05.255>have <00:39:05.411>two <00:39:05.566>teams <00:39:05.722>then <00:39:05.877>you <00:39:06.033>cut <00:39:06.188>it <00:39:06.344>in <00:39:06.500>two.

775
00:39:08.800 --> 00:39:11.300
<00:39:08.800>It's <00:39:09.080>it's <00:39:09.360>a <00:39:09.640>process <00:39:09.920>architecture <00:39:10.200>is

776
00:39:11.300 --> 00:39:15.200
<00:39:11.300>nothing <00:39:11.533>that <00:39:11.766>you <00:39:12.000>can <00:39:12.233>create <00:39:12.466>front <00:39:12.700>in.

777
00:39:14.200 --> 00:39:18.200
<00:39:14.200>The <00:39:14.399>beginning <00:39:14.600>of <00:39:14.799>the <00:39:15.000>project <00:39:15.200>forever <00:39:15.399>architecture <00:39:15.600>is

778
00:39:18.200 --> 00:39:21.500
<00:39:18.200>evolving <00:39:18.355>with <00:39:18.511>the <00:39:18.666>time. <00:39:18.822>This <00:39:18.977>is <00:39:19.133>very <00:39:19.288>normal <00:39:19.444>and <00:39:19.600>you

779
00:39:21.500 --> 00:39:24.700
<00:39:21.500>will <00:39:21.640>have <00:39:21.780>to <00:39:21.920>refect <00:39:22.060>her <00:39:22.200>and <00:39:22.340>to <00:39:22.480>rethink <00:39:22.620>and <00:39:22.760>because <00:39:22.900>the

780
00:39:24.700 --> 00:39:27.500
<00:39:24.700>first <00:39:24.933>solution <00:39:25.166>is <00:39:25.399>never <00:39:25.633>the <00:39:25.866>right <00:39:26.100>one.

781
00:39:27.500 --> 00:39:30.600
<00:39:27.500>I <00:39:27.733>mean <00:39:27.966>if <00:39:28.200>anybody <00:39:28.433>here <00:39:28.666>could <00:39:28.900>claim

782
00:39:30.600 --> 00:39:33.100
<00:39:30.600>that <00:39:30.833>he <00:39:31.066>programmed <00:39:31.299>something <00:39:31.533>and <00:39:31.766>the <00:39:32.000>first

783
00:39:33.100 --> 00:39:36.400
<00:39:33.100>shot <00:39:33.333>live <00:39:33.566>10 <00:39:33.799>years <00:39:34.033>and <00:39:34.266>was <00:39:34.500>the

784
00:39:36.400 --> 00:39:39.300
<00:39:36.400>best <00:39:36.555>ever. <00:39:36.711>Wow. <00:39:36.866>I <00:39:37.022>mean, <00:39:37.177>I <00:39:37.333>want <00:39:37.488>to <00:39:37.644>employ <00:39:37.800>you

785
00:39:39.300 --> 00:39:42.500
<00:39:39.300>for <00:39:39.455>a <00:39:39.611>million <00:39:39.766>dollars. <00:39:39.922>I <00:39:40.077>don't <00:39:40.233>know <00:39:40.388>and <00:39:40.544>you <00:39:40.700>know,

786
00:39:42.500 --> 00:39:45.300
<00:39:42.500>I <00:39:42.675>mean <00:39:42.850>don't <00:39:43.025>ask <00:39:43.200>for <00:39:43.375>it's <00:39:43.550>okay, <00:39:43.725>you <00:39:43.900>know,

787
00:39:45.300 --> 00:39:48.500
<00:39:45.300>but <00:39:45.455>I <00:39:45.611>have <00:39:45.766>to <00:39:45.922>be <00:39:46.077>very <00:39:46.233>very <00:39:46.388>clear <00:39:46.544>so <00:39:46.700>that

788
00:39:48.500 --> 00:39:51.500
<00:39:48.500>you <00:39:48.675>don't <00:39:48.850>think <00:39:49.025>it's <00:39:49.200>easy <00:39:49.375>or <00:39:49.550>something <00:39:49.725>or <00:39:49.900>I

789
00:39:51.500 --> 00:39:55.000
<00:39:51.500>have <00:39:51.780>the <00:39:52.060>the <00:39:52.340>miracle <00:39:52.620>powder. <00:39:52.900>I'm

790
00:39:54.200 --> 00:39:57.400
<00:39:54.200>going <00:39:54.355>to <00:39:54.511>perform <00:39:54.666>this <00:39:54.822>into <00:39:54.977>a <00:39:55.133>question <00:39:55.288>because <00:39:55.444>it <00:39:55.600>looks

791
00:39:57.400 --> 00:40:00.400
<00:39:57.400>like <00:39:57.540>sort <00:39:57.680>of <00:39:57.820>an <00:39:57.960>order <00:39:58.100>and <00:39:58.240>it's <00:39:58.380>not <00:39:58.520>very <00:39:58.660>polite. <00:39:58.800>Oh

792
00:40:00.400 --> 00:40:02.200
<00:40:00.400>learn <00:40:00.633>about <00:40:00.866>to <00:40:01.100>ask <00:40:01.333>a <00:40:01.566>question <00:40:01.800>guys.

793
00:40:03.400 --> 00:40:06.500
<00:40:03.400>Can <00:40:03.575>you <00:40:03.750>please <00:40:03.925>explain <00:40:04.100>in <00:40:04.275>detail <00:40:04.450>how <00:40:04.625>communication <00:40:04.800>between

794
00:40:06.500 --> 00:40:09.900
<00:40:06.500>the <00:40:06.675>two <00:40:06.850>modules <00:40:07.025>look <00:40:07.200>like <00:40:07.375>in <00:40:07.550>the <00:40:07.725>cinema <00:40:07.900>example?

795
00:40:09.900 --> 00:40:12.100
<00:40:09.900>Oh, <00:40:10.133>yeah, <00:40:10.366>the <00:40:10.600>two <00:40:10.833>models <00:40:11.066>they <00:40:11.300>don't.

796
00:40:14.900 --> 00:40:18.000
<00:40:14.900>Come <00:40:15.180>contacts <00:40:15.460>communicate. <00:40:15.740>So <00:40:16.020>one <00:40:16.300>service

797
00:40:17.700 --> 00:40:20.500
<00:40:17.700>when <00:40:18.049>the <00:40:18.399>weekly <00:40:18.750>schedule <00:40:19.100>is

798
00:40:20.500 --> 00:40:23.400
<00:40:20.500>finished <00:40:20.733>sends <00:40:20.966>over <00:40:21.200>an <00:40:21.433>event <00:40:21.666>to <00:40:21.900>the

799
00:40:23.400 --> 00:40:26.700
<00:40:23.400>other <00:40:23.575>one <00:40:23.750>either <00:40:23.925>you <00:40:24.100>send <00:40:24.275>the <00:40:24.450>whole <00:40:24.625>weekly <00:40:24.800>schedule

800
00:40:26.700 --> 00:40:29.800
<00:40:26.700>with <00:40:26.839>it <00:40:26.980>or <00:40:27.120>you <00:40:27.259>just <00:40:27.399>tell <00:40:27.540>the <00:40:27.680>other <00:40:27.819>one <00:40:27.960>that <00:40:28.100>really

801
00:40:29.800 --> 00:40:32.400
<00:40:29.800>shellul <00:40:30.000>is <00:40:30.200>ready <00:40:30.400>and <00:40:30.600>he <00:40:30.800>can <00:40:31.000>come <00:40:31.200>and

802
00:40:32.400 --> 00:40:35.500
<00:40:32.400>fetch <00:40:32.540>it. <00:40:32.680>You <00:40:32.820>know, <00:40:32.960>it <00:40:33.100>depends <00:40:33.240>on <00:40:33.380>the <00:40:33.520>structure <00:40:33.660>you <00:40:33.800>want

803
00:40:35.500 --> 00:40:38.500
<00:40:35.500>to <00:40:35.627>work <00:40:35.754>with <00:40:35.881>do <00:40:36.009>you <00:40:36.136>want <00:40:36.263>to <00:40:36.390>have <00:40:36.518>a <00:40:36.645>messaging <00:40:36.772>or <00:40:36.900>an

804
00:40:38.500 --> 00:40:42.300
<00:40:38.500>Eventing <00:40:38.655>bus <00:40:38.811>or <00:40:38.966>whatever, <00:40:39.122>you <00:40:39.277>know, <00:40:39.433>this <00:40:39.588>is <00:40:39.744>what <00:40:39.900>many

805
00:40:41.300 --> 00:40:45.100
<00:40:41.300>technical <00:40:41.580>students <00:40:41.860>what <00:40:42.140>are <00:40:42.420>your <00:40:42.700>experiences

806
00:40:44.100 --> 00:40:47.800
<00:40:44.100>with <00:40:44.566>event <00:40:45.033>driven <00:40:45.500>architecture

807
00:40:47.800 --> 00:40:50.300
<00:40:47.800>and <00:40:48.150>DDD. <00:40:48.500>Yes <00:40:48.850>with <00:40:49.200>the

808
00:40:50.300 --> 00:40:52.900
<00:40:50.300>combination <00:40:50.500>of <00:40:50.700>event <00:40:50.900>driven <00:40:51.100>architecture <00:40:51.300>and <00:40:51.500>DDD <00:40:51.700>well.

809
00:40:54.700 --> 00:40:57.300
<00:40:54.700>I <00:40:55.049>I <00:40:55.399>come <00:40:55.750>I'm <00:40:56.100>not

810
00:40:57.300 --> 00:41:00.500
<00:40:57.300>born <00:40:57.650>in <00:40:58.000>event-driven <00:40:58.350>architectures. <00:40:58.700>I

811
00:41:00.500 --> 00:41:04.200
<00:41:00.500>was <00:41:00.700>born <00:41:00.900>in <00:41:01.100>domain <00:41:01.300>driven <00:41:01.500>architecture. <00:41:01.700>So, <00:41:01.900>of

812
00:41:03.200 --> 00:41:06.700
<00:41:03.200>course, <00:41:03.549>you <00:41:03.899>will <00:41:04.250>connect <00:41:04.600>your

813
00:41:06.700 --> 00:41:09.400
<00:41:06.700>your <00:41:06.933>domain <00:41:07.166>modules <00:41:07.399>you <00:41:07.633>bounded <00:41:07.866>context <00:41:08.100>with

814
00:41:09.400 --> 00:41:12.600
<00:41:09.400>events, <00:41:09.633>but <00:41:09.866>the <00:41:10.100>event <00:41:10.333>is <00:41:10.566>from <00:41:10.800>my

815
00:41:12.600 --> 00:41:15.300
<00:41:12.600>point <00:41:12.775>of <00:41:12.950>view <00:41:13.125>not <00:41:13.299>the <00:41:13.475>First <00:41:13.650>Citizens <00:41:13.825>in <00:41:14.000>my

816
00:41:15.300 --> 00:41:18.500
<00:41:15.300>architecture. <00:41:15.533>The <00:41:15.766>First <00:41:16.000>Citizens <00:41:16.233>are <00:41:16.466>bounded <00:41:16.700>context

817
00:41:18.500 --> 00:41:21.600
<00:41:18.500>and <00:41:18.627>they <00:41:18.754>talk <00:41:18.881>to <00:41:19.009>each <00:41:19.136>other <00:41:19.263>and <00:41:19.390>there <00:41:19.518>is <00:41:19.645>a <00:41:19.772>domain <00:41:19.900>model

818
00:41:21.600 --> 00:41:25.000
<00:41:21.600>in <00:41:21.880>there <00:41:22.160>the <00:41:22.440>whole <00:41:22.720>event <00:41:23.000>if

819
00:41:24.500 --> 00:41:27.200
<00:41:24.500>everything <00:41:24.780>is <00:41:25.060>an <00:41:25.340>event. <00:41:25.620>You <00:41:25.900>will

820
00:41:27.200 --> 00:41:30.300
<00:41:27.200>lose <00:41:27.480>a <00:41:27.759>lot <00:41:28.040>of <00:41:28.319>semantics <00:41:28.600>in

821
00:41:30.300 --> 00:41:31.900
<00:41:30.300>your <00:41:30.650>in <00:41:31.000>your <00:41:31.350>system. <00:41:31.700>So

822
00:41:33.300 --> 00:41:36.600
<00:41:33.300>They <00:41:33.427>work <00:41:33.554>together, <00:41:33.681>but <00:41:33.809>you <00:41:33.936>have <00:41:34.063>to <00:41:34.190>know <00:41:34.318>what <00:41:34.445>you <00:41:34.572>do <00:41:34.700>at

823
00:41:36.600 --> 00:41:39.000
<00:41:36.600>what <00:41:36.799>stage <00:41:37.000>you <00:41:37.200>want <00:41:37.400>to <00:41:37.600>have <00:41:37.799>bounded <00:41:38.000>contacts.

824
00:41:39.600 --> 00:41:42.100
<00:41:39.600>And <00:41:39.775>then <00:41:39.950>events <00:41:40.125>between <00:41:40.299>them. <00:41:40.475>This <00:41:40.650>is <00:41:40.825>what <00:41:41.000>you

825
00:41:42.100 --> 00:41:42.300
<00:41:42.100>want <00:41:42.190>to <00:41:42.280>do.

826
00:41:43.200 --> 00:41:46.500
<00:41:43.200>Let's <00:41:43.327>get <00:41:43.454>into <00:41:43.581>the <00:41:43.709>last <00:41:43.836>one <00:41:43.963>or <00:41:44.090>two. <00:41:44.218>What <00:41:44.345>is <00:41:44.472>your <00:41:44.600>way

827
00:41:46.500 --> 00:41:50.300
<00:41:46.500>of <00:41:46.655>thinking? <00:41:46.811>When <00:41:46.966>do <00:41:47.122>you <00:41:47.277>want <00:41:47.433>to <00:41:47.588>decide <00:41:47.744>between <00:41:47.900>strong

828
00:41:49.300 --> 00:41:52.900
<00:41:49.300>and <00:41:49.766>eventual <00:41:50.233>consistency <00:41:50.700>when

829
00:41:52.900 --> 00:41:54.900
<00:41:52.900>designing <00:41:53.180>the <00:41:53.460>sides <00:41:53.740>of <00:41:54.020>domain <00:41:54.300>boundaries?

830
00:41:57.400 --> 00:42:00.800
<00:41:57.400>I'm <00:41:57.575>not <00:41:57.750>sure <00:41:57.925>if <00:41:58.100>I <00:41:58.275>really <00:41:58.450>understood <00:41:58.625>the <00:41:58.800>whole

831
00:42:00.800 --> 00:42:04.700
<00:42:00.800>thing, <00:42:01.150>but <00:42:01.500>between <00:42:01.850>bounded <00:42:02.200>contexts

832
00:42:04.700 --> 00:42:05.500
<00:42:04.700>that <00:42:05.060>are <00:42:05.420>not.

833
00:42:06.500 --> 00:42:10.200
<00:42:06.500>Strongly <00:42:06.780>connected <00:42:07.060>with <00:42:07.340>synchronous <00:42:07.620>calls <00:42:07.900>there

834
00:42:09.200 --> 00:42:13.000
<00:42:09.200>is <00:42:09.666>eventual <00:42:10.133>consistency, <00:42:10.600>which

835
00:42:12.300 --> 00:42:16.400
<00:42:12.300>is <00:42:12.533>fine. <00:42:12.766>How <00:42:13.000>do <00:42:13.233>you <00:42:13.466>calculate <00:42:13.700>MMI

836
00:42:15.400 --> 00:42:19.000
<00:42:15.400>modularity <00:42:15.866>maturity <00:42:16.333>and <00:42:16.800>there

837
00:42:18.100 --> 00:42:21.300
<00:42:18.100>is <00:42:18.450>an <00:42:18.799>huge <00:42:19.150>database <00:42:19.500>and

838
00:42:21.300 --> 00:42:24.900
<00:42:21.300>an <00:42:21.500>algorithm <00:42:21.700>and <00:42:21.900>we <00:42:22.100>just <00:42:22.300>published <00:42:22.500>the <00:42:22.700>algorithm

839
00:42:24.900 --> 00:42:28.000
<00:42:24.900>in <00:42:25.133>a <00:42:25.366>book <00:42:25.600>and <00:42:25.833>with <00:42:26.066>O'Reilly <00:42:26.300>if

840
00:42:27.100 --> 00:42:30.200
<00:42:27.100>you <00:42:27.275>want <00:42:27.450>to <00:42:27.625>have <00:42:27.799>the <00:42:27.975>reference <00:42:28.150>just <00:42:28.325>ask <00:42:28.500>me

841
00:42:30.200 --> 00:42:33.200
<00:42:30.200>and <00:42:30.399>I <00:42:30.600>will <00:42:30.799>tell <00:42:31.000>you <00:42:31.200>so <00:42:31.399>there <00:42:31.600>are

842
00:42:33.200 --> 00:42:36.200
<00:42:33.200>various <00:42:33.399>things <00:42:33.600>it <00:42:33.799>comes <00:42:34.000>it's <00:42:34.200>as <00:42:34.399>well <00:42:34.600>in

843
00:42:36.200 --> 00:42:39.800
<00:42:36.200>my <00:42:36.316>book. <00:42:36.433>You <00:42:36.549>can <00:42:36.666>read <00:42:36.783>it. <00:42:36.899>It <00:42:37.016>comes <00:42:37.133>from <00:42:37.250>from <00:42:37.366>the <00:42:37.483>question. <00:42:37.600>What

844
00:42:39.800 --> 00:42:42.800
<00:42:39.800>kind <00:42:40.150>of <00:42:40.500>structures <00:42:40.850>are <00:42:41.200>complicated

845
00:42:42.800 --> 00:42:45.300
<00:42:42.800>for <00:42:43.033>our <00:42:43.266>brain <00:42:43.500>because <00:42:43.733>I <00:42:43.966>worked <00:42:44.200>a

846
00:42:45.300 --> 00:42:48.500
<00:42:45.300>lot <00:42:45.455>with <00:42:45.611>cognitive <00:42:45.766>science <00:42:45.922>to <00:42:46.077>find <00:42:46.233>out <00:42:46.388>what <00:42:46.544>your <00:42:46.700>brain

847
00:42:48.500 --> 00:42:51.400
<00:42:48.500>likes <00:42:48.675>and <00:42:48.850>what <00:42:49.025>you <00:42:49.200>already <00:42:49.375>is <00:42:49.550>for <00:42:49.725>your <00:42:49.900>brain.

848
00:42:51.400 --> 00:42:54.900
<00:42:51.400>So <00:42:51.750>just <00:42:52.100>another <00:42:52.450>interesting <00:42:52.800>talk

849
00:42:54.900 --> 00:42:57.500
<00:42:54.900>for <00:42:55.040>next <00:42:55.180>year <00:42:55.320>for <00:42:55.460>the <00:42:55.600>rest <00:42:55.740>of <00:42:55.880>the <00:42:56.020>question. <00:42:56.160>Our <00:42:56.300>time

850
00:42:57.500 --> 00:43:00.700
<00:42:57.500>is <00:42:57.616>over <00:42:57.733>for <00:42:57.850>the <00:42:57.966>rest <00:42:58.083>of <00:42:58.200>the <00:42:58.316>question <00:42:58.433>people <00:42:58.550>can <00:42:58.666>reach <00:42:58.783>out <00:42:58.900>to

851
00:43:00.700 --> 00:43:03.300
<00:43:00.700>you <00:43:00.933>in <00:43:01.166>person <00:43:01.399>because <00:43:01.633>maybe <00:43:01.866>you're <00:43:02.100>gonna

852
00:43:03.300 --> 00:43:05.800
<00:43:03.300>still <00:43:03.500>be <00:43:03.700>around <00:43:03.900>a <00:43:04.100>little <00:43:04.300>bit <00:43:04.500>here, <00:43:04.700>but

853
00:43:06.400 --> 00:43:08.900
<00:43:06.400>You <00:43:06.633>a <00:43:06.866>lot <00:43:07.100>for <00:43:07.333>these <00:43:07.566>amazing <00:43:07.800>thoughts.