WEBVTT

1
00:00:05.595 --> 00:00:08.975
<00:00:05.595>So <00:00:05.770>this <00:00:05.944>presentation <00:00:06.119>will <00:00:06.295>be <00:00:06.470>about <00:00:06.645>micro <00:00:06.819>front <00:00:06.994>dance

2
00:00:09.405 --> 00:00:12.295
<00:00:09.405>with <00:00:09.684>a <00:00:09.965>very, <00:00:10.245>very <00:00:10.524>difficult <00:00:10.805>spin

3
00:00:12.885 --> 00:00:16.055
<00:00:12.885>with <00:00:13.165>multi <00:00:13.445>versions <00:00:13.725>and <00:00:14.004>multiple <00:00:14.285>frameworks.

4
00:00:16.515 --> 00:00:18.095
<00:00:16.515>So <00:00:16.795>I <00:00:17.075>guess <00:00:17.355>you <00:00:17.635>already <00:00:17.915>know

5
00:00:18.095 --> 00:00:20.175
<00:00:18.095>what <00:00:18.375>micro <00:00:18.654>front <00:00:18.935>dance <00:00:19.215>are <00:00:19.494>about.

6
00:00:20.765 --> 00:00:24.215
<00:00:20.765>They <00:00:20.940>are <00:00:21.115>basically <00:00:21.290>about <00:00:21.465>having <00:00:21.640>a <00:00:21.815>huge <00:00:21.990>front <00:00:22.165>end

7
00:00:24.355 --> 00:00:27.615
<00:00:24.355>and <00:00:24.555>you <00:00:24.755>are <00:00:24.955>splitting <00:00:25.155>it <00:00:25.355>into <00:00:25.555>several <00:00:25.755>more

8
00:00:27.675 --> 00:00:29.535
<00:00:27.675>or <00:00:28.025>less <00:00:28.375>independent <00:00:28.725>front <00:00:29.075>ends.

9
00:00:30.475 --> 00:00:31.935
<00:00:30.475>And <00:00:30.803>you <00:00:31.132>do <00:00:31.460>this <00:00:31.788>first

10
00:00:31.995 --> 00:00:36.415
<00:00:31.995>and <00:00:32.170>foremost <00:00:32.345>to <00:00:32.520>be <00:00:32.695>able <00:00:32.870>of <00:00:33.045>assigning <00:00:33.220>individual <00:00:33.395>teams

11
00:00:36.595 --> 00:00:38.935
<00:00:36.595>to <00:00:36.875>all <00:00:37.155>of <00:00:37.435>those <00:00:37.714>parts <00:00:37.995>teams

12
00:00:39.085 --> 00:00:41.695
<00:00:39.085>that <00:00:39.318>can <00:00:39.551>work <00:00:39.785>on <00:00:40.018>their <00:00:40.251>own <00:00:40.485>teams

13
00:00:41.845 --> 00:00:45.855
<00:00:41.845>that <00:00:42.000>don't <00:00:42.156>slow <00:00:42.311>down <00:00:42.467>each <00:00:42.622>other, <00:00:42.778>teams <00:00:42.933>that <00:00:43.089>don't <00:00:43.245>need

14
00:00:45.855 --> 00:00:47.215
<00:00:45.855>to <00:00:46.263>coordinate <00:00:46.671>each <00:00:47.079>other.

15
00:00:47.835 --> 00:00:49.615
<00:00:47.835>So <00:00:48.115>it's <00:00:48.395>all <00:00:48.675>about <00:00:48.955>team <00:00:49.235>autonomy

16
00:00:50.755 --> 00:00:52.375
<00:00:50.755>and <00:00:50.988>to <00:00:51.221>put <00:00:51.455>it <00:00:51.688>in <00:00:51.921>another <00:00:52.155>way,

17
00:00:52.805 --> 00:00:57.455
<00:00:52.805>this <00:00:52.932>is <00:00:53.059>all <00:00:53.186>about <00:00:53.314>bringing <00:00:53.441>back <00:00:53.568>the <00:00:53.695>agility <00:00:53.823>of <00:00:53.950>a <00:00:54.077>small <00:00:54.205>team.

18
00:00:58.045 --> 00:01:01.735
<00:00:58.045>Even <00:00:58.220>though <00:00:58.395>you <00:00:58.570>have <00:00:58.745>a <00:00:58.920>huge <00:00:59.095>overall <00:00:59.270>software <00:00:59.445>system,

19
00:01:03.435 --> 00:01:07.455
<00:01:03.435>the <00:01:03.590>thing <00:01:03.746>is <00:01:03.901>as <00:01:04.057>you <00:01:04.212>have <00:01:04.368>several <00:01:04.523>independent <00:01:04.679>front <00:01:04.835>ends,

20
00:01:07.475 --> 00:01:09.975
<00:01:07.475>now <00:01:07.708>somehow <00:01:07.941>you <00:01:08.175>need <00:01:08.408>to <00:01:08.641>integrate <00:01:08.875>them

21
00:01:10.405 --> 00:01:15.135
<00:01:10.405>because <00:01:10.580>usually <00:01:10.755>your <00:01:10.930>user <00:01:11.105>is <00:01:11.280>not <00:01:11.455>interested <00:01:11.630>into <00:01:11.805>starting

22
00:01:15.785 --> 00:01:17.575
<00:01:15.785>50 <00:01:16.485>applications <00:01:17.185>each

23
00:01:17.615 --> 00:01:20.855
<00:01:17.615>and <00:01:17.770>every <00:01:17.926>morning <00:01:18.081>would <00:01:18.237>be <00:01:18.392>a <00:01:18.548>bit <00:01:18.703>exhausting, <00:01:18.859>wouldn't <00:01:19.015>it?

24
00:01:21.035 --> 00:01:24.335
<00:01:21.035>So <00:01:21.175>somehow <00:01:21.315>you <00:01:21.455>need <00:01:21.595>to <00:01:21.735>integrate <00:01:21.875>all <00:01:22.015>of <00:01:22.155>those <00:01:22.295>front <00:01:22.435>ends

25
00:01:24.915 --> 00:01:27.135
<00:01:24.914>and <00:01:25.115>you <00:01:25.315>need <00:01:25.514>to <00:01:25.714>do <00:01:25.914>this <00:01:26.115>at <00:01:26.315>Runtime

26
00:01:27.645 --> 00:01:30.935
<00:01:27.645>because <00:01:27.994>everything <00:01:28.345>is <00:01:28.695>developed <00:01:29.045>independently,

27
00:01:31.185 --> 00:01:33.775
<00:01:31.185>everything <00:01:31.651>is <00:01:32.118>deployed <00:01:32.585>independently,

28
00:01:34.155 --> 00:01:37.215
<00:01:34.155>so <00:01:34.330>only <00:01:34.505>at <00:01:34.680>runtime <00:01:34.855>you <00:01:35.030>have <00:01:35.205>the <00:01:35.380>newest <00:01:35.555>version,

29
00:01:37.715 --> 00:01:38.975
<00:01:37.715>you <00:01:37.998>can <00:01:38.282>pick <00:01:38.565>it <00:01:38.848>up

30
00:01:39.195 --> 00:01:42.615
<00:01:39.195>and <00:01:39.322>put <00:01:39.449>it <00:01:39.576>into <00:01:39.704>the <00:01:39.831>middle <00:01:39.958>of <00:01:40.085>what <00:01:40.213>I'm <00:01:40.340>calling <00:01:40.467>a <00:01:40.595>shell.

31
00:01:43.005 --> 00:01:45.015
<00:01:43.005>This <00:01:43.705>overarching <00:01:44.405>application

32
00:01:46.595 --> 00:01:49.375
<00:01:46.595>and <00:01:46.828>for <00:01:47.061>loading <00:01:47.295>something <00:01:47.528>into <00:01:47.761>a <00:01:47.995>shell,

33
00:01:49.405 --> 00:01:53.695
<00:01:49.405>something <00:01:49.560>we <00:01:49.716>did <00:01:49.871>not <00:01:50.027>know <00:01:50.182>at <00:01:50.338>Compile <00:01:50.493>on <00:01:50.649>something <00:01:50.805>like

34
00:01:54.015 --> 00:01:57.015
<00:01:54.015>Federation <00:01:54.248>has <00:01:54.481>proven <00:01:54.715>to <00:01:54.948>be <00:01:55.181>very <00:01:55.415>powerful.

35
00:01:58.035 --> 00:02:00.895
<00:01:58.035>The <00:01:58.268>idea <00:01:58.501>of <00:01:58.735>federation <00:01:58.968>is <00:01:59.201>quite <00:01:59.435>straightforward.

36
00:02:01.435 --> 00:02:03.695
<00:02:01.435>You <00:02:01.668>have <00:02:01.901>two <00:02:02.135>kinds <00:02:02.368>of <00:02:02.601>applications <00:02:02.835>there.

37
00:02:05.155 --> 00:02:08.055
<00:02:05.155>You <00:02:05.330>have <00:02:05.505>a <00:02:05.680>host, <00:02:05.855>I <00:02:06.030>call <00:02:06.205>it <00:02:06.380>my <00:02:06.555>Shell,

38
00:02:08.475 --> 00:02:11.575
<00:02:08.475>and <00:02:08.630>you <00:02:08.786>have <00:02:08.941>a <00:02:09.097>remote, <00:02:09.252>I <00:02:09.408>call <00:02:09.563>it <00:02:09.719>the <00:02:09.875>microphone

39
00:02:12.515 --> 00:02:14.975
<00:02:12.515>and <00:02:12.748>then <00:02:12.981>the <00:02:13.214>shell <00:02:13.448>gets <00:02:13.681>a <00:02:13.915>configuration.

40
00:02:15.265 --> 00:02:19.495
<00:02:15.265>There <00:02:15.440>is <00:02:15.614>a <00:02:15.790>mapping <00:02:15.964>pointing <00:02:16.140>over <00:02:16.315>to <00:02:16.489>the <00:02:16.665>uh,

41
00:02:19.785 --> 00:02:23.215
<00:02:19.785>micro <00:02:19.924>front <00:02:20.065>and <00:02:20.204>over <00:02:20.345>there <00:02:20.484>that <00:02:20.625>means <00:02:20.765>you <00:02:20.905>get <00:02:21.045>a <00:02:21.185>virtual

42
00:02:23.735 --> 00:02:26.375
<00:02:23.735>URL <00:02:23.935>like <00:02:24.135>MFE <00:02:24.335>one, <00:02:24.535>you <00:02:24.735>see <00:02:24.935>it <00:02:25.135>here

43
00:02:26.595 --> 00:02:30.175
<00:02:26.595>and <00:02:26.750>this <00:02:26.906>URL <00:02:27.061>points <00:02:27.217>over <00:02:27.372>to <00:02:27.528>the <00:02:27.683>micro <00:02:27.839>front <00:02:27.995>and

44
00:02:30.755 --> 00:02:34.295
<00:02:30.755>and <00:02:30.930>over <00:02:31.105>there <00:02:31.280>you <00:02:31.454>have <00:02:31.630>something <00:02:31.805>like <00:02:31.980>exposed <00:02:32.155>files,

45
00:02:35.305 --> 00:02:39.095
<00:02:35.305>JavaScript <00:02:35.585>files <00:02:35.865>with <00:02:36.145>components, <00:02:36.425>with <00:02:36.705>services,

46
00:02:39.565 --> 00:02:43.455
<00:02:39.565>with <00:02:39.740>something <00:02:39.915>else <00:02:40.090>and <00:02:40.265>everything <00:02:40.440>you <00:02:40.615>are <00:02:40.790>exposing <00:02:40.965>there

47
00:02:43.995 --> 00:02:45.855
<00:02:43.995>can <00:02:44.275>be <00:02:44.555>loaded <00:02:44.835>into <00:02:45.115>the <00:02:45.395>shell.

48
00:02:46.835 --> 00:02:51.215
<00:02:46.835>All <00:02:46.962>the <00:02:47.089>shell <00:02:47.216>now <00:02:47.344>needs <00:02:47.471>is <00:02:47.598>set <00:02:47.725>dynamic <00:02:47.853>import <00:02:47.980>using <00:02:48.107>the <00:02:48.235>map

49
00:02:51.215 --> 00:02:53.415
<00:02:51.215>names <00:02:51.448>and <00:02:51.681>so <00:02:51.915>it <00:02:52.148>can <00:02:52.381>grab <00:02:52.615>over

50
00:02:53.515 --> 00:02:56.255
<00:02:53.515>and <00:02:53.748>load <00:02:53.981>something <00:02:54.214>from <00:02:54.448>there <00:02:54.681>even <00:02:54.915>though

51
00:02:56.795 --> 00:02:58.975
<00:02:56.795>it <00:02:56.995>did <00:02:57.195>not <00:02:57.395>know <00:02:57.595>it <00:02:57.795>had <00:02:57.995>compiled <00:02:58.195>them.

52
00:03:00.875 --> 00:03:05.045
<00:03:00.875>From <00:03:01.050>the <00:03:01.225>Shell's <00:03:01.400>perspective, <00:03:01.575>this <00:03:01.750>is <00:03:01.925>like <00:03:02.100>lazy <00:03:02.275>loading.

53
00:03:05.075 --> 00:03:09.045
<00:03:05.075>However, <00:03:05.250>the <00:03:05.424>big <00:03:05.600>difference <00:03:05.774>to <00:03:05.950>traditional <00:03:06.125>lazy <00:03:06.299>loading <00:03:06.475>is

54
00:03:09.315 --> 00:03:12.965
<00:03:09.315>that <00:03:09.442>we <00:03:09.569>did <00:03:09.696>not <00:03:09.824>know <00:03:09.951>the <00:03:10.078>stuff <00:03:10.205>over <00:03:10.333>there <00:03:10.460>at <00:03:10.587>compile <00:03:10.715>them.

55
00:03:14.265 --> 00:03:17.965
<00:03:14.265>In <00:03:14.440>order <00:03:14.614>to <00:03:14.790>use <00:03:14.964>Web <00:03:15.140>Back <00:03:15.315>Federation, <00:03:15.489>you <00:03:15.665>need

56
00:03:18.105 --> 00:03:19.165
<00:03:18.105>of <00:03:18.582>course <00:03:19.059>Webpac,

57
00:03:19.545 --> 00:03:23.685
<00:03:19.545>but <00:03:19.685>meanwhile <00:03:19.825>as <00:03:19.965>Webpac <00:03:20.105>is <00:03:20.245>not <00:03:20.385>the <00:03:20.525>most <00:03:20.665>famous <00:03:20.805>tool <00:03:20.945>anymore,

58
00:03:24.065 --> 00:03:26.205
<00:03:24.065>it <00:03:24.298>has <00:03:24.531>been <00:03:24.765>ported <00:03:24.998>to <00:03:25.231>our <00:03:25.465>pec.

59
00:03:27.005 --> 00:03:31.085
<00:03:27.005>Honestly, <00:03:27.160>the <00:03:27.316>main <00:03:27.471>further <00:03:27.627>development <00:03:27.782>happens <00:03:27.938>in <00:03:28.093>the <00:03:28.249>R <00:03:28.405>SPAC

60
00:03:31.085 --> 00:03:34.085
<00:03:31.085>space <00:03:31.260>and <00:03:31.435>there <00:03:31.610>is <00:03:31.785>also <00:03:31.960>a <00:03:32.135>quite <00:03:32.310>a <00:03:32.485>nice

61
00:03:34.175 --> 00:03:36.925
<00:03:34.175>BeachBoard <00:03:34.875>besides <00:03:35.575>this.

62
00:03:37.025 --> 00:03:40.165
<00:03:37.025>If <00:03:37.180>you <00:03:37.336>are <00:03:37.491>going <00:03:37.647>with <00:03:37.802>Ears <00:03:37.958>Build, <00:03:38.113>you <00:03:38.269>can <00:03:38.425>go

63
00:03:40.165 --> 00:03:43.485
<00:03:40.165>with <00:03:40.445>Native <00:03:40.725>Federation <00:03:41.005>From <00:03:41.285>your <00:03:41.565>perspective,

64
00:03:43.705 --> 00:03:46.925
<00:03:43.704>native <00:03:43.904>Federation <00:03:44.105>looks <00:03:44.304>more <00:03:44.505>or <00:03:44.704>less <00:03:44.904>the <00:03:45.105>same.

65
00:03:47.025 --> 00:03:48.725
<00:03:47.025>You <00:03:47.305>have <00:03:47.585>the <00:03:47.865>same <00:03:48.145>API <00:03:48.425>surface,

66
00:03:49.235 --> 00:03:54.205
<00:03:49.235>however <00:03:49.435>it <00:03:49.635>is <00:03:49.835>framework <00:03:50.035>independent <00:03:50.235>and <00:03:50.435>bundle <00:03:50.635>independent.

67
00:03:54.545 --> 00:03:56.645
<00:03:54.545>It <00:03:54.825>is <00:03:55.105>just <00:03:55.385>using <00:03:55.665>web <00:03:55.945>standards

68
00:03:56.945 --> 00:03:58.965
<00:03:56.945>and <00:03:57.144>so <00:03:57.345>you <00:03:57.545>can <00:03:57.745>board <00:03:57.945>it <00:03:58.144>to <00:03:58.345>each

69
00:03:58.985 --> 00:04:03.805
<00:03:58.985>and <00:03:59.125>every <00:03:59.265>Stack <00:03:59.405>Ears <00:03:59.545>spill <00:03:59.685>support <00:03:59.825>is <00:03:59.965>quite <00:04:00.105>important <00:04:00.245>for <00:04:00.385>me

70
00:04:03.805 --> 00:04:07.925
<00:04:03.805>because <00:04:04.005>meanwhile <00:04:04.205>Angola <00:04:04.405>is <00:04:04.605>mainly <00:04:04.805>using <00:04:05.005>ears <00:04:05.205>spill

71
00:04:07.935 --> 00:04:09.005
<00:04:07.935>underneath <00:04:08.416>the <00:04:08.898>covers

72
00:04:09.465 --> 00:04:12.685
<00:04:09.465>and <00:04:09.620>I'm <00:04:09.776>doing <00:04:09.931>a <00:04:10.087>lot <00:04:10.242>of <00:04:10.398>stuff <00:04:10.553>with <00:04:10.709>Angola <00:04:10.865>and

73
00:04:12.685 --> 00:04:16.205
<00:04:12.685>besides <00:04:12.885>this, <00:04:13.085>having <00:04:13.285>something <00:04:13.485>that <00:04:13.685>can <00:04:13.885>be <00:04:14.085>bordered

74
00:04:16.265 --> 00:04:19.565
<00:04:16.265>to <00:04:16.498>everything <00:04:16.731>else <00:04:16.964>also <00:04:17.198>provides <00:04:17.431>some <00:04:17.664>value.

75
00:04:21.545 --> 00:04:24.765
<00:04:21.545>One <00:04:21.720>of <00:04:21.895>the <00:04:22.070>best <00:04:22.245>things <00:04:22.420>about <00:04:22.595>Federation <00:04:22.770>is <00:04:22.945>you

76
00:04:24.765 --> 00:04:25.925
<00:04:24.765>can <00:04:25.287>share <00:04:25.809>libraries.

77
00:04:26.225 --> 00:04:28.685
<00:04:26.225>So <00:04:26.400>let's <00:04:26.575>say <00:04:26.750>you <00:04:26.925>have <00:04:27.100>the <00:04:27.275>same <00:04:27.450>framework <00:04:27.625>here

78
00:04:28.905 --> 00:04:31.725
<00:04:28.905>and <00:04:29.138>there, <00:04:29.371>of <00:04:29.604>course <00:04:29.838>you <00:04:30.071>don't <00:04:30.304>want

79
00:04:31.845 --> 00:04:35.125
<00:04:31.845>to <00:04:32.045>load <00:04:32.245>the <00:04:32.445>same <00:04:32.645>framework <00:04:32.845>10 <00:04:33.045>times <00:04:33.245>just

80
00:04:35.125 --> 00:04:38.525
<00:04:35.125>because <00:04:35.280>of <00:04:35.436>having <00:04:35.591>10 <00:04:35.747>in <00:04:35.902>the <00:04:36.058>band <00:04:36.213>micro <00:04:36.369>front <00:04:36.525>ends.

81
00:04:38.865 --> 00:04:42.645
<00:04:38.865>You <00:04:38.981>just <00:04:39.098>want <00:04:39.215>to <00:04:39.331>load <00:04:39.448>it <00:04:39.565>once <00:04:39.681>and <00:04:39.798>then <00:04:39.915>share <00:04:40.031>it <00:04:40.148>at <00:04:40.265>runtime.

82
00:04:42.985 --> 00:04:46.205
<00:04:42.985>And <00:04:43.218>this <00:04:43.451>is <00:04:43.685>completely <00:04:43.918>possible <00:04:44.151>with <00:04:44.385>Federation.

83
00:04:46.475 --> 00:04:49.885
<00:04:46.475>It's <00:04:46.615>just <00:04:46.755>a <00:04:46.895>matter <00:04:47.035>of <00:04:47.175>the <00:04:47.315>configuration <00:04:47.455>as <00:04:47.595>you <00:04:47.735>see <00:04:47.875>here.

84
00:04:51.865 --> 00:04:56.125
<00:04:51.865>The <00:04:52.020>thing <00:04:52.176>is <00:04:52.331>when <00:04:52.487>we <00:04:52.642>really <00:04:52.798>talk <00:04:52.953>about <00:04:53.109>independent <00:04:53.265>teams,

85
00:04:56.675 --> 00:05:00.925
<00:04:56.675>when <00:04:56.815>we <00:04:56.955>talk <00:04:57.095>about <00:04:57.235>team <00:04:57.375>autonomy, <00:04:57.515>we <00:04:57.655>also <00:04:57.795>can <00:04:57.935>end <00:04:58.075>up

86
00:05:00.925 --> 00:05:04.125
<00:05:00.925>with <00:05:01.125>a <00:05:01.325>situation <00:05:01.525>where <00:05:01.725>you <00:05:01.925>have <00:05:02.125>different <00:05:02.325>versions

87
00:05:04.125 --> 00:05:08.725
<00:05:04.125>of <00:05:04.300>the <00:05:04.475>same <00:05:04.650>framework <00:05:04.825>or <00:05:05.000>perhaps <00:05:05.175>even <00:05:05.350>different <00:05:05.525>frameworks.

88
00:05:10.025 --> 00:05:12.885
<00:05:10.025>Of <00:05:10.224>course <00:05:10.424>we <00:05:10.625>don't <00:05:10.825>really <00:05:11.025>plan <00:05:11.224>for <00:05:11.424>this.

89
00:05:13.475 --> 00:05:17.165
<00:05:13.475>Usually <00:05:13.650>we <00:05:13.825>want <00:05:14.000>to <00:05:14.175>avoid <00:05:14.350>this <00:05:14.525>Sioux <00:05:14.700>of <00:05:14.875>frameworks,

90
00:05:17.275 --> 00:05:18.685
<00:05:17.275>this <00:05:17.698>Sioux <00:05:18.121>of <00:05:18.544>versions.

91
00:05:18.795 --> 00:05:22.245
<00:05:18.795>However <00:05:18.995>it <00:05:19.195>can <00:05:19.395>happen. <00:05:19.595>We <00:05:19.795>have <00:05:19.995>independent <00:05:20.195>teams.

92
00:05:22.595 --> 00:05:25.605
<00:05:22.595>Perhaps <00:05:22.795>we <00:05:22.995>had <00:05:23.195>a <00:05:23.395>merger <00:05:23.595>of <00:05:23.795>several <00:05:23.995>companies.

93
00:05:25.995 --> 00:05:30.045
<00:05:25.995>Perhaps <00:05:26.150>there <00:05:26.306>are <00:05:26.461>historically <00:05:26.617>reasons <00:05:26.772>why <00:05:26.928>we <00:05:27.083>have <00:05:27.239>more <00:05:27.395>than

94
00:05:30.145 --> 00:05:31.725
<00:05:30.145>one <00:05:30.611>framework <00:05:31.078>or <00:05:31.544>version

95
00:05:32.385 --> 00:05:36.605
<00:05:32.385>or <00:05:32.512>perhaps <00:05:32.639>we <00:05:32.766>need <00:05:32.894>to <00:05:33.021>move <00:05:33.148>over <00:05:33.275>to <00:05:33.403>a <00:05:33.530>new <00:05:33.657>technology <00:05:33.784>stack.

96
00:05:36.605 --> 00:05:41.525
<00:05:36.605>Little <00:05:36.805>by <00:05:37.005>little, <00:05:37.205>especially <00:05:37.405>in <00:05:37.605>the <00:05:37.805>enterprise <00:05:38.005>environment

97
00:05:41.695 --> 00:05:46.285
<00:05:41.695>where <00:05:41.850>we <00:05:42.006>have <00:05:42.161>long <00:05:42.317>lasting <00:05:42.472>solutions, <00:05:42.628>this <00:05:42.783>is <00:05:42.939>quite <00:05:43.094>usual

98
00:05:46.675 --> 00:05:48.485
<00:05:46.675>that <00:05:46.955>we <00:05:47.235>need <00:05:47.515>to <00:05:47.795>migrate <00:05:48.075>little

99
00:05:48.545 --> 00:05:50.205
<00:05:48.545>by <00:05:48.778>little <00:05:49.011>over <00:05:49.245>to <00:05:49.478>a <00:05:49.711>new <00:05:49.945>stack.

100
00:05:50.265 --> 00:05:52.485
<00:05:50.265>We <00:05:50.544>cannot <00:05:50.825>rewrite <00:05:51.104>everything <00:05:51.385>at <00:05:51.664>once.

101
00:05:52.985 --> 00:05:55.165
<00:05:52.985>We <00:05:53.218>cannot <00:05:53.451>do <00:05:53.685>a <00:05:53.918>big <00:05:54.151>bang <00:05:54.385>migration.

102
00:05:55.505 --> 00:05:57.685
<00:05:55.505>We <00:05:55.680>have <00:05:55.855>to <00:05:56.030>do <00:05:56.205>this <00:05:56.380>in <00:05:56.555>a <00:05:56.730>gradual <00:05:56.905>way

103
00:05:58.865 --> 00:06:00.525
<00:05:58.865>and <00:05:59.331>that <00:05:59.798>means <00:06:00.265>sooner

104
00:06:00.585 --> 00:06:04.925
<00:06:00.585>or <00:06:00.724>later <00:06:00.864>you <00:06:01.005>will <00:06:01.145>be <00:06:01.284>in <00:06:01.424>the <00:06:01.565>space <00:06:01.705>of <00:06:01.844>multiple <00:06:01.984>frameworks

105
00:06:05.025 --> 00:06:07.725
<00:06:05.025>or <00:06:05.304>versions <00:06:05.585>and <00:06:05.864>it's <00:06:06.145>even <00:06:06.424>worse

106
00:06:08.115 --> 00:06:10.165
<00:06:08.115>because <00:06:08.815>chances <00:06:09.515>are

107
00:06:10.235 --> 00:06:12.765
<00:06:10.235>that <00:06:10.468>you <00:06:10.701>are <00:06:10.935>using <00:06:11.168>different <00:06:11.401>minor <00:06:11.635>versions.

108
00:06:13.425 --> 00:06:16.845
<00:06:13.425>And <00:06:13.625>also <00:06:13.825>there <00:06:14.025>you <00:06:14.225>might <00:06:14.425>need <00:06:14.625>to <00:06:14.825>go

109
00:06:16.845 --> 00:06:20.645
<00:06:16.845>with <00:06:16.985>a <00:06:17.125>multi <00:06:17.265>version <00:06:17.405>scenario <00:06:17.545>even <00:06:17.685>though <00:06:17.825>it's <00:06:17.965>just <00:06:18.105>a <00:06:18.245>couple

110
00:06:20.705 --> 00:06:22.165
<00:06:20.705>of <00:06:21.143>different <00:06:21.581>minor <00:06:22.019>versions.

111
00:06:22.715 --> 00:06:26.925
<00:06:22.715>This <00:06:22.870>is <00:06:23.026>more <00:06:23.181>or <00:06:23.337>less <00:06:23.492>because <00:06:23.648>of <00:06:23.803>how <00:06:23.959>Angular <00:06:24.114>works.

112
00:06:27.385 --> 00:06:29.445
<00:06:27.385>If <00:06:27.618>you <00:06:27.851>look <00:06:28.085>into <00:06:28.318>Angular <00:06:28.551>for <00:06:28.784>instance,

113
00:06:29.465 --> 00:06:32.085
<00:06:29.465>and <00:06:29.620>you <00:06:29.776>might <00:06:29.931>also <00:06:30.087>have <00:06:30.242>this <00:06:30.398>issue <00:06:30.553>with <00:06:30.709>other <00:06:30.864>frameworks,

114
00:06:32.275 --> 00:06:36.125
<00:06:32.275>then <00:06:32.430>you <00:06:32.586>see <00:06:32.741>that <00:06:32.897>Angular <00:06:33.052>comes <00:06:33.208>with <00:06:33.363>its <00:06:33.519>own <00:06:33.674>compiler

115
00:06:36.585 --> 00:06:39.005
<00:06:36.585>and <00:06:36.760>more <00:06:36.935>and <00:06:37.109>more <00:06:37.284>other <00:06:37.460>frameworks <00:06:37.635>to <00:06:37.810>the <00:06:37.984>same.

116
00:06:39.665 --> 00:06:42.925
<00:06:39.665>And <00:06:39.820>when <00:06:39.976>this <00:06:40.131>compiler <00:06:40.287>is <00:06:40.442>not <00:06:40.598>compiling <00:06:40.753>your <00:06:40.909>source <00:06:41.065>code,

117
00:06:43.315 --> 00:06:47.405
<00:06:43.315>then <00:06:43.548>it <00:06:43.781>is <00:06:44.015>emitting <00:06:44.248>code, <00:06:44.481>JavaScript <00:06:44.715>code,

118
00:06:47.625 --> 00:06:50.765
<00:06:47.625>low <00:06:47.858>level <00:06:48.091>JavaScript <00:06:48.325>code <00:06:48.558>that <00:06:48.791>is <00:06:49.025>bound

119
00:06:51.025 --> 00:06:53.325
<00:06:51.025>to <00:06:51.491>your <00:06:51.958>very <00:06:52.424>version.

120
00:06:54.345 --> 00:06:58.005
<00:06:54.345>And <00:06:54.545>this <00:06:54.745>binding <00:06:54.945>points <00:06:55.145>to <00:06:55.345>the <00:06:55.545>private <00:06:55.745>API

121
00:06:58.145 --> 00:07:01.645
<00:06:58.145>of <00:06:58.344>your <00:06:58.544>Ang <00:06:58.745>version, <00:06:58.945>the <00:06:59.145>private <00:06:59.344>API, <00:06:59.544>we

122
00:07:01.665 --> 00:07:04.245
<00:07:01.665>as <00:07:01.898>developers <00:07:02.131>are <00:07:02.365>not <00:07:02.598>allowed <00:07:02.831>to <00:07:03.065>use

123
00:07:04.825 --> 00:07:07.805
<00:07:04.825>but <00:07:04.980>the <00:07:05.136>source <00:07:05.291>code <00:07:05.447>emitted <00:07:05.602>by <00:07:05.758>the <00:07:05.913>compiler <00:07:06.069>is <00:07:06.224>allowed

124
00:07:07.805 --> 00:07:09.645
<00:07:07.805>to <00:07:08.155>use <00:07:08.505>all <00:07:08.855>those <00:07:09.205>instructions.

125
00:07:10.625 --> 00:07:13.405
<00:07:10.625>And <00:07:10.825>as <00:07:11.025>this <00:07:11.225>API <00:07:11.425>is <00:07:11.625>a <00:07:11.825>private <00:07:12.025>one,

126
00:07:13.745 --> 00:07:18.005
<00:07:13.745>you <00:07:13.920>have <00:07:14.095>no <00:07:14.270>guarantees <00:07:14.445>in <00:07:14.620>terms <00:07:14.795>of <00:07:14.970>semantic <00:07:15.145>versioning

127
00:07:18.545 --> 00:07:23.045
<00:07:18.545>and <00:07:18.685>that <00:07:18.825>means <00:07:18.965>if <00:07:19.105>this <00:07:19.245>code <00:07:19.385>sees <00:07:19.525>another <00:07:19.665>minor <00:07:19.805>version <00:07:19.945>at

128
00:07:23.075 --> 00:07:25.005
<00:07:23.075>runtime, <00:07:23.541>it <00:07:24.008>might <00:07:24.474>break.

129
00:07:25.915 --> 00:07:27.805
<00:07:25.915>Very <00:07:26.195>likely <00:07:26.475>it <00:07:26.755>does <00:07:27.035>not <00:07:27.315>break.

130
00:07:27.835 --> 00:07:29.925
<00:07:27.835>However, <00:07:28.185>there <00:07:28.534>are <00:07:28.885>no <00:07:29.234>guarantees

131
00:07:29.925 --> 00:07:33.285
<00:07:29.925>because <00:07:30.125>we <00:07:30.325>are <00:07:30.525>using <00:07:30.725>the <00:07:30.925>private <00:07:31.125>API <00:07:31.325>service

132
00:07:33.785 --> 00:07:37.285
<00:07:33.784>and <00:07:33.912>I <00:07:34.039>think <00:07:34.166>this <00:07:34.294>shows <00:07:34.421>that <00:07:34.548>you <00:07:34.675>will <00:07:34.803>be <00:07:34.930>in <00:07:35.057>the <00:07:35.184>scenario

133
00:07:37.585 --> 00:07:41.005
<00:07:37.585>of <00:07:37.784>multiple <00:07:37.984>versions <00:07:38.185>a <00:07:38.385>bit <00:07:38.585>sooner <00:07:38.784>than <00:07:38.984>you

134
00:07:41.005 --> 00:07:42.045
<00:07:41.005>might <00:07:41.473>have <00:07:41.941>expected.

135
00:07:43.265 --> 00:07:44.805
<00:07:43.265>So <00:07:43.542>the <00:07:43.819>big <00:07:44.096>question <00:07:44.373>I <00:07:44.651>want

136
00:07:44.805 --> 00:07:47.725
<00:07:44.805>to <00:07:45.005>answer <00:07:45.205>here <00:07:45.405>in <00:07:45.605>this <00:07:45.805>presentation <00:07:46.005>is <00:07:46.205>how

137
00:07:47.745 --> 00:07:49.605
<00:07:47.745>to <00:07:48.211>implement <00:07:48.678>such <00:07:49.145>scenarios.

138
00:07:51.105 --> 00:07:53.325
<00:07:51.105>And <00:07:51.305>for <00:07:51.505>this <00:07:51.705>I <00:07:51.905>have <00:07:52.105>prepared <00:07:52.305>several <00:07:52.505>things.

139
00:07:53.965 --> 00:07:57.205
<00:07:53.965>I <00:07:54.165>will <00:07:54.365>get <00:07:54.565>started <00:07:54.765>with <00:07:54.965>hiding <00:07:55.165>frameworks <00:07:55.365>with

140
00:07:57.725 --> 00:08:01.445
<00:07:57.725>abstracting <00:07:57.925>the <00:07:58.125>details <00:07:58.325>of <00:07:58.525>frameworks <00:07:58.725>and <00:07:58.925>versions <00:07:59.125>away.

141
00:08:01.995 --> 00:08:04.485
<00:08:01.995>Then <00:08:02.195>we <00:08:02.395>will <00:08:02.595>talk <00:08:02.795>about <00:08:02.995>web <00:08:03.195>components <00:08:03.395>in

142
00:08:04.555 --> 00:08:06.205
<00:08:04.555>combination <00:08:05.255>with <00:08:05.955>federation.

143
00:08:06.785 --> 00:08:08.965
<00:08:06.785>We <00:08:07.065>will <00:08:07.345>also <00:08:07.625>talk <00:08:07.905>about <00:08:08.185>alternatives

144
00:08:08.965 --> 00:08:12.085
<00:08:08.965>because <00:08:09.164>there <00:08:09.364>are <00:08:09.565>always <00:08:09.765>alternatives <00:08:09.965>with <00:08:10.164>a <00:08:10.364>lot

145
00:08:12.085 --> 00:08:16.245
<00:08:12.085>of <00:08:12.364>consequences, <00:08:12.645>positive <00:08:12.924>and <00:08:13.205>negative <00:08:13.484>consequences.

146
00:08:16.905 --> 00:08:20.245
<00:08:16.905>And <00:08:17.032>finally, <00:08:17.159>I <00:08:17.286>also <00:08:17.414>want <00:08:17.541>to <00:08:17.668>talk <00:08:17.795>about <00:08:17.923>the <00:08:18.050>costs <00:08:18.177>of <00:08:18.304>all

147
00:08:20.245 --> 00:08:24.005
<00:08:20.245>of <00:08:20.372>this <00:08:20.499>because <00:08:20.626>in <00:08:20.754>this <00:08:20.881>world <00:08:21.008>nothing <00:08:21.135>is <00:08:21.263>for <00:08:21.390>free <00:08:21.517>as <00:08:21.645>unit.

148
00:08:25.425 --> 00:08:29.205
<00:08:25.425>Before <00:08:25.580>we <00:08:25.736>get <00:08:25.891>started, <00:08:26.047>let <00:08:26.202>me <00:08:26.358>introduce <00:08:26.513>myself. <00:08:26.669>I'm <00:08:26.825>Manfred.

149
00:08:29.685 --> 00:08:32.085
<00:08:29.685>I <00:08:29.885>am <00:08:30.085>a <00:08:30.285>train <00:08:30.485>and <00:08:30.685>consultant <00:08:30.885>for <00:08:31.085>Angola

150
00:08:32.465 --> 00:08:35.445
<00:08:32.465>and <00:08:32.665>I'm <00:08:32.865>focusing <00:08:33.065>on <00:08:33.265>Angola <00:08:33.465>in <00:08:33.665>the <00:08:33.865>enterprise.

151
00:08:36.745 --> 00:08:39.645
<00:08:36.745>In <00:08:36.919>this <00:08:37.095>role <00:08:37.270>I'm <00:08:37.445>helping <00:08:37.620>a <00:08:37.794>lot <00:08:37.970>of <00:08:38.145>companies.

152
00:08:39.785 --> 00:08:41.765
<00:08:39.784>I'm <00:08:40.251>traveling <00:08:40.718>around <00:08:41.184>I

153
00:08:41.785 --> 00:08:45.965
<00:08:41.784>and <00:08:42.018>Manai <00:08:42.251>colleagues <00:08:42.485>to <00:08:42.718>workshops <00:08:42.951>there <00:08:43.184>trainings,

154
00:08:46.215 --> 00:08:49.085
<00:08:46.215>consulting <00:08:46.565>reviews <00:08:46.915>and <00:08:47.265>also <00:08:47.615>development.

155
00:08:49.795 --> 00:08:52.085
<00:08:49.795>Besides <00:08:50.074>this, <00:08:50.354>I'm <00:08:50.635>also <00:08:50.915>quite <00:08:51.194>connected

156
00:08:52.085 --> 00:08:53.405
<00:08:52.085>to <00:08:52.481>the <00:08:52.877>Angola <00:08:53.273>community.

157
00:08:54.045 --> 00:08:57.525
<00:08:54.045>I <00:08:54.161>live <00:08:54.278>in <00:08:54.395>Austria, <00:08:54.511>I <00:08:54.628>do <00:08:54.745>a <00:08:54.861>lot <00:08:54.978>of <00:08:55.094>stuff <00:08:55.211>here <00:08:55.328>in <00:08:55.444>Germany

158
00:08:58.525 --> 00:09:01.005
<00:08:58.525>actually <00:08:59.225>since <00:08:59.925>2008.

159
00:09:01.565 --> 00:09:03.605
<00:09:01.565>I <00:09:01.798>am <00:09:02.031>here <00:09:02.265>on <00:09:02.498>a <00:09:02.731>biweekly <00:09:02.965>basis.

160
00:09:04.305 --> 00:09:06.965
<00:09:04.305>I'm <00:09:04.584>traveling <00:09:04.864>across <00:09:05.145>the <00:09:05.425>federal <00:09:05.704>states

161
00:09:07.425 --> 00:09:11.445
<00:09:07.425>and <00:09:07.599>I'm <00:09:07.775>helping <00:09:07.949>companies <00:09:08.125>with <00:09:08.300>Angola <00:09:08.474>in <00:09:08.650>the <00:09:08.824>enterprise.

162
00:09:12.205 --> 00:09:16.445
<00:09:12.205>I <00:09:12.380>always <00:09:12.555>enjoin <00:09:12.730>enjoined <00:09:12.905>to <00:09:13.080>discover <00:09:13.255>all <00:09:13.430>the <00:09:13.605>little

163
00:09:16.545 --> 00:09:17.885
<00:09:16.545>and <00:09:17.148>bigger <00:09:17.751>differences

164
00:09:18.385 --> 00:09:20.965
<00:09:18.385>of <00:09:18.618>the <00:09:18.851>different <00:09:19.085>regions <00:09:19.318>here <00:09:19.551>in <00:09:19.785>Germany.

165
00:09:21.745 --> 00:09:23.765
<00:09:21.745>And <00:09:22.095>also <00:09:22.445>when <00:09:22.795>I <00:09:23.145>promise

166
00:09:23.985 --> 00:09:28.605
<00:09:23.985>to <00:09:24.140>behave <00:09:24.296>well <00:09:24.451>sometimes <00:09:24.607>people <00:09:24.762>let <00:09:24.918>me <00:09:25.073>into <00:09:25.229>other <00:09:25.385>countries.

167
00:09:30.075 --> 00:09:31.485
<00:09:30.075>Okay, <00:09:30.392>so <00:09:30.709>let's <00:09:31.026>get <00:09:31.344>started

168
00:09:31.795 --> 00:09:34.205
<00:09:31.795>with <00:09:32.145>hiding <00:09:32.495>frameworks <00:09:32.844>and <00:09:33.194>versions.

169
00:09:34.225 --> 00:09:35.965
<00:09:34.225>We <00:09:34.505>want <00:09:34.785>to <00:09:35.065>abstract <00:09:35.345>them <00:09:35.625>away

170
00:09:36.625 --> 00:09:40.205
<00:09:36.625>and <00:09:36.780>when <00:09:36.936>it <00:09:37.091>comes <00:09:37.247>to <00:09:37.402>abstracting <00:09:37.558>away <00:09:37.713>all <00:09:37.869>those <00:09:38.025>differences

171
00:09:41.025 --> 00:09:44.605
<00:09:41.025>in <00:09:41.199>theory <00:09:41.375>we <00:09:41.550>could <00:09:41.725>use <00:09:41.900>each <00:09:42.074>and <00:09:42.250>every <00:09:42.425>abstraction.

172
00:09:45.505 --> 00:09:48.605
<00:09:45.505>In <00:09:45.738>theory <00:09:45.971>you <00:09:46.205>could <00:09:46.438>define <00:09:46.671>your <00:09:46.905>interface

173
00:09:49.185 --> 00:09:52.805
<00:09:49.185>or <00:09:49.324>you <00:09:49.464>could <00:09:49.604>define <00:09:49.744>there <00:09:49.885>has <00:09:50.025>to <00:09:50.165>be <00:09:50.305>a <00:09:50.444>JavaScript <00:09:50.584>file,

174
00:09:53.395 --> 00:09:54.685
<00:09:53.395>exporting <00:09:53.975>a <00:09:54.555>start

175
00:09:54.825 --> 00:09:57.845
<00:09:54.825>and <00:09:55.058>a <00:09:55.291>stop <00:09:55.525>function, <00:09:55.758>A <00:09:55.991>start <00:09:56.225>function

176
00:09:58.195 --> 00:10:02.605
<00:09:58.195>that <00:09:58.370>is <00:09:58.545>bootstrapping <00:09:58.720>your <00:09:58.895>single <00:09:59.070>page <00:09:59.245>application <00:09:59.420>in <00:09:59.595>the

177
00:10:02.605 --> 00:10:07.405
<00:10:02.605>middle <00:10:02.732>of <00:10:02.859>our <00:10:02.986>shell <00:10:03.114>and <00:10:03.241>a <00:10:03.368>stop <00:10:03.495>function <00:10:03.623>that <00:10:03.750>is <00:10:03.877>removing <00:10:04.005>it.

178
00:10:07.905 --> 00:10:09.245
<00:10:07.905>Of <00:10:08.146>course <00:10:08.387>you <00:10:08.628>could <00:10:08.869>do <00:10:09.111>this

179
00:10:09.635 --> 00:10:13.325
<00:10:09.635>however <00:10:09.835>here <00:10:10.035>I'm <00:10:10.235>going <00:10:10.435>one <00:10:10.635>step <00:10:10.835>further <00:10:11.035>here.

180
00:10:13.825 --> 00:10:16.845
<00:10:13.825>I'm <00:10:14.105>wrapping <00:10:14.385>my <00:10:14.665>single <00:10:14.945>page <00:10:15.225>applications,

181
00:10:17.065 --> 00:10:20.725
<00:10:17.065>my <00:10:17.265>micro <00:10:17.465>round <00:10:17.665>dance <00:10:17.865>into <00:10:18.065>a <00:10:18.265>web <00:10:18.465>component.

182
00:10:21.475 --> 00:10:22.885
<00:10:21.475>It's <00:10:21.898>also <00:10:22.321>an <00:10:22.744>abstraction

183
00:10:23.265 --> 00:10:26.165
<00:10:23.265>and <00:10:23.545>it's <00:10:23.824>also <00:10:24.105>a <00:10:24.385>well-known <00:10:24.665>standard.

184
00:10:26.705 --> 00:10:29.285
<00:10:26.705>All <00:10:26.938>of <00:10:27.171>the <00:10:27.405>frameworks <00:10:27.638>out <00:10:27.871>there, <00:10:28.105>all

185
00:10:29.385 --> 00:10:32.005
<00:10:29.385>of <00:10:29.585>the <00:10:29.785>browsers <00:10:29.985>are <00:10:30.185>out <00:10:30.385>there <00:10:30.585>are <00:10:30.785>supporting.

186
00:10:33.035 --> 00:10:34.965
<00:10:33.035>This <00:10:33.268>is <00:10:33.501>not <00:10:33.735>a <00:10:33.968>typical <00:10:34.201>web <00:10:34.435>component,

187
00:10:35.075 --> 00:10:37.845
<00:10:35.075>this <00:10:35.275>is <00:10:35.475>more <00:10:35.675>a <00:10:35.875>COAs <00:10:36.075>screened <00:10:36.275>web <00:10:36.475>component,

188
00:10:38.105 --> 00:10:40.205
<00:10:38.105>but <00:10:38.280>at <00:10:38.455>the <00:10:38.630>end <00:10:38.805>of <00:10:38.980>the <00:10:39.155>day <00:10:39.330>it's <00:10:39.505>fine

189
00:10:40.355 --> 00:10:43.645
<00:10:40.355>because <00:10:40.588>also <00:10:40.821>your <00:10:41.055>huge <00:10:41.288>application, <00:10:41.521>your <00:10:41.755>microphone

190
00:10:43.645 --> 00:10:48.485
<00:10:43.645>and <00:10:43.785>is <00:10:43.925>a <00:10:44.064>component, <00:10:44.204>a <00:10:44.345>component <00:10:44.485>that <00:10:44.625>consists <00:10:44.765>of <00:10:44.905>a <00:10:45.045>lot

191
00:10:48.485 --> 00:10:51.925
<00:10:48.485>of <00:10:48.660>components <00:10:48.835>that <00:10:49.010>in <00:10:49.185>turn <00:10:49.360>consists <00:10:49.535>of <00:10:49.710>a <00:10:49.885>lot

192
00:10:51.925 --> 00:10:53.125
<00:10:51.925>of <00:10:52.464>further <00:10:53.005>components.

193
00:10:54.665 --> 00:10:58.325
<00:10:54.665>So <00:10:54.820>in <00:10:54.976>order <00:10:55.131>to <00:10:55.287>wrap <00:10:55.442>something <00:10:55.598>into <00:10:55.753>a <00:10:55.909>web <00:10:56.064>component,

194
00:10:58.545 --> 00:11:02.485
<00:10:58.545>the <00:10:58.685>easiest <00:10:58.824>thing <00:10:58.964>you <00:10:59.104>could <00:10:59.245>do <00:10:59.385>is <00:10:59.525>to <00:10:59.665>subclass <00:10:59.805>HDML <00:10:59.944>element,

195
00:11:03.115 --> 00:11:04.285
<00:11:03.115>just <00:11:03.466>extend <00:11:03.817>from <00:11:04.168>it

196
00:11:04.825 --> 00:11:07.805
<00:11:04.825>and <00:11:05.025>then <00:11:05.225>you <00:11:05.425>get <00:11:05.625>this <00:11:05.825>connected <00:11:06.025>callback <00:11:06.225>method,

197
00:11:08.545 --> 00:11:09.565
<00:11:08.545>you <00:11:09.004>override <00:11:09.463>it

198
00:11:09.905 --> 00:11:12.085
<00:11:09.905>and <00:11:10.185>in <00:11:10.464>there <00:11:10.745>all <00:11:11.025>you <00:11:11.305>need

199
00:11:12.085 --> 00:11:14.405
<00:11:12.085>to <00:11:12.365>do <00:11:12.645>is <00:11:12.925>bootstrapping <00:11:13.205>your <00:11:13.485>application.

200
00:11:15.105 --> 00:11:16.645
<00:11:15.105>So <00:11:15.567>that's <00:11:16.029>it's <00:11:16.491>more

201
00:11:16.865 --> 00:11:20.245
<00:11:16.865>or <00:11:17.040>less <00:11:17.215>instead <00:11:17.390>of <00:11:17.565>writing <00:11:17.740>something <00:11:17.915>into <00:11:18.090>the <00:11:18.265>dome

202
00:11:20.265 --> 00:11:24.325
<00:11:20.265>by <00:11:20.439>yourself <00:11:20.615>in <00:11:20.790>there <00:11:20.965>you <00:11:21.140>bootstrap <00:11:21.314>your <00:11:21.490>angular <00:11:21.665>application,

203
00:11:24.355 --> 00:11:27.965
<00:11:24.355>your <00:11:24.530>react <00:11:24.705>application, <00:11:24.880>your <00:11:25.055>view <00:11:25.230>application <00:11:25.405>and <00:11:25.580>so <00:11:25.755>on.

204
00:11:28.745 --> 00:11:29.965
<00:11:28.745>And <00:11:29.111>then <00:11:29.477>you <00:11:29.843>need

205
00:11:29.965 --> 00:11:32.965
<00:11:29.965>to <00:11:30.165>register <00:11:30.365>this <00:11:30.565>web <00:11:30.765>component <00:11:30.965>with <00:11:31.165>your <00:11:31.365>browser.

206
00:11:33.505 --> 00:11:35.685
<00:11:33.505>For <00:11:33.738>this <00:11:33.971>you <00:11:34.205>can <00:11:34.438>use <00:11:34.671>this <00:11:34.905>uh,

207
00:11:35.685 --> 00:11:37.485
<00:11:35.685>methods <00:11:36.035>provided <00:11:36.385>by <00:11:36.734>the <00:11:37.084>browser.

208
00:11:37.625 --> 00:11:39.765
<00:11:37.625>Custom <00:11:38.325>elements <00:11:39.025>defined

209
00:11:40.985 --> 00:11:44.045
<00:11:40.985>the <00:11:41.140>string <00:11:41.296>you <00:11:41.451>are <00:11:41.607>busing <00:11:41.762>in <00:11:41.918>here <00:11:42.073>is <00:11:42.229>the <00:11:42.385>name

210
00:11:44.105 --> 00:11:45.525
<00:11:44.105>of <00:11:44.531>an <00:11:44.957>HTML <00:11:45.383>deck

211
00:11:46.025 --> 00:11:48.805
<00:11:46.025>and <00:11:46.225>every <00:11:46.425>time <00:11:46.625>you <00:11:46.824>are <00:11:47.025>adding <00:11:47.225>such <00:11:47.425>attack

212
00:11:48.865 --> 00:11:52.245
<00:11:48.865>to <00:11:49.098>your <00:11:49.331>shell <00:11:49.565>immediately <00:11:49.798>your <00:11:50.031>web <00:11:50.265>component

213
00:11:52.625 --> 00:11:55.565
<00:11:52.625>and <00:11:52.825>so <00:11:53.025>your <00:11:53.225>micro <00:11:53.425>front <00:11:53.625>and <00:11:53.825>is <00:11:54.025>displayed

214
00:11:56.225 --> 00:12:00.565
<00:11:56.225>and <00:11:56.365>when <00:11:56.505>you <00:11:56.645>remove <00:11:56.785>this <00:11:56.925>stack, <00:11:57.065>then <00:11:57.205>also <00:11:57.345>the <00:11:57.485>web <00:11:57.625>component

215
00:12:00.745 --> 00:12:02.845
<00:12:00.745>and <00:12:00.945>so <00:12:01.145>the <00:12:01.345>micro <00:12:01.545>front <00:12:01.745>and <00:12:01.945>is <00:12:02.145>hidden.

216
00:12:05.285 --> 00:12:07.105
<00:12:05.285>Of <00:12:05.485>course <00:12:05.685>you <00:12:05.885>can <00:12:06.084>do <00:12:06.285>this <00:12:06.485>by <00:12:06.685>hand,

217
00:12:07.285 --> 00:12:10.425
<00:12:07.285>but <00:12:07.440>meanwhile <00:12:07.596>there <00:12:07.751>are <00:12:07.907>several <00:12:08.062>tools <00:12:08.218>for <00:12:08.373>all <00:12:08.529>of <00:12:08.685>this.

218
00:12:10.765 --> 00:12:14.545
<00:12:10.765>For <00:12:10.920>instance, <00:12:11.076>in <00:12:11.231>the <00:12:11.387>Angola <00:12:11.542>space <00:12:11.698>we <00:12:11.853>have <00:12:12.009>Angola <00:12:12.165>elements,

219
00:12:14.755 --> 00:12:17.785
<00:12:14.755>which <00:12:14.930>is <00:12:15.105>a <00:12:15.280>official <00:12:15.455>project <00:12:15.630>by <00:12:15.805>the <00:12:15.980>Angola <00:12:16.155>team

220
00:12:18.205 --> 00:12:20.145
<00:12:18.205>and <00:12:18.438>it <00:12:18.671>does <00:12:18.905>this <00:12:19.138>wrapping <00:12:19.371>for <00:12:19.605>you.

221
00:12:20.565 --> 00:12:22.265
<00:12:20.565>You <00:12:20.798>just <00:12:21.031>need <00:12:21.265>one <00:12:21.498>line <00:12:21.731>of <00:12:21.965>code

222
00:12:22.525 --> 00:12:24.425
<00:12:22.525>to <00:12:22.805>get <00:12:23.084>this <00:12:23.365>web <00:12:23.645>component <00:12:23.925>wrapper

223
00:12:25.165 --> 00:12:27.465
<00:12:25.165>and <00:12:25.444>you'll <00:12:25.724>find <00:12:26.005>open <00:12:26.285>source <00:12:26.564>tools

224
00:12:27.565 --> 00:12:31.825
<00:12:27.565>for <00:12:27.720>similar <00:12:27.876>things <00:12:28.031>in <00:12:28.187>other <00:12:28.342>spaces <00:12:28.498>like <00:12:28.653>I've <00:12:28.809>seen <00:12:28.965>something

225
00:12:31.825 --> 00:12:34.185
<00:12:31.825>like <00:12:32.105>this <00:12:32.385>in <00:12:32.665>React <00:12:32.945>for <00:12:33.225>instance,

226
00:12:36.095 --> 00:12:37.665
<00:12:36.095>when <00:12:36.375>you <00:12:36.655>go <00:12:36.935>one <00:12:37.215>step <00:12:37.495>further

227
00:12:38.325 --> 00:12:41.265
<00:12:38.325>and <00:12:38.605>expose <00:12:38.885>this <00:12:39.165>web <00:12:39.445>component <00:12:39.725>via

228
00:12:41.475 --> 00:12:43.225
<00:12:41.475>federation, <00:12:41.825>it <00:12:42.175>looks <00:12:42.525>like <00:12:42.875>this.

229
00:12:44.765 --> 00:12:46.945
<00:12:44.765>You <00:12:45.045>just <00:12:45.324>have <00:12:45.605>this <00:12:45.885>federation <00:12:46.165>config

230
00:12:47.565 --> 00:12:51.345
<00:12:47.565>and <00:12:47.765>in <00:12:47.965>there <00:12:48.165>you <00:12:48.365>are <00:12:48.565>exposing <00:12:48.765>your <00:12:48.965>file

231
00:12:51.455 --> 00:12:55.665
<00:12:51.455>with <00:12:51.630>the <00:12:51.805>web <00:12:51.980>components <00:12:52.155>you <00:12:52.330>are <00:12:52.505>assigning <00:12:52.680>an <00:12:52.855>Elias

232
00:12:55.895 --> 00:12:59.425
<00:12:55.895>because <00:12:56.361>usually <00:12:56.828>your <00:12:57.295>consumer,

233
00:12:59.575 --> 00:13:03.305
<00:12:59.575>your <00:12:59.750>Shell <00:12:59.925>is <00:13:00.100>not <00:13:00.275>interested <00:13:00.450>into <00:13:00.625>knowing <00:13:00.800>the <00:13:00.975>full

234
00:13:03.335 --> 00:13:04.465
<00:13:03.335>path <00:13:03.674>of <00:13:04.013>your <00:13:04.352>files.

235
00:13:04.895 --> 00:13:08.705
<00:13:04.895>It's <00:13:05.069>not <00:13:05.245>interested <00:13:05.420>into <00:13:05.595>knowing <00:13:05.770>that <00:13:05.944>there <00:13:06.120>is <00:13:06.295>projects

236
00:13:09.345 --> 00:13:11.785
<00:13:09.345>MFE <00:13:09.625>two <00:13:09.905>source, <00:13:10.185>my <00:13:10.465>web <00:13:10.745>component.

237
00:13:12.125 --> 00:13:15.785
<00:13:12.125>You <00:13:12.280>just <00:13:12.436>want <00:13:12.591>to <00:13:12.747>go <00:13:12.902>with <00:13:13.058>a <00:13:13.213>short <00:13:13.369>name <00:13:13.525>and

238
00:13:15.785 --> 00:13:19.265
<00:13:15.785>after <00:13:15.959>that <00:13:16.135>you <00:13:16.310>can <00:13:16.485>just <00:13:16.660>load <00:13:16.834>this <00:13:17.010>web <00:13:17.185>component

239
00:13:19.815 --> 00:13:21.545
<00:13:19.815>into <00:13:20.165>the <00:13:20.515>shell <00:13:20.865>via <00:13:21.215>federation.

240
00:13:22.285 --> 00:13:25.305
<00:13:22.285>So <00:13:22.485>it's <00:13:22.685>just <00:13:22.885>a <00:13:23.084>matter <00:13:23.285>of <00:13:23.485>Ady <00:13:23.685>import,

241
00:13:25.815 --> 00:13:27.145
<00:13:25.815>it's <00:13:26.413>quite <00:13:27.012>straightforward.

242
00:13:27.565 --> 00:13:31.065
<00:13:27.565>You're <00:13:27.692>using <00:13:27.819>all <00:13:27.946>the <00:13:28.074>map <00:13:28.201>names, <00:13:28.328>the <00:13:28.455>map <00:13:28.583>name <00:13:28.710>on <00:13:28.837>your <00:13:28.965>side,

243
00:13:31.125 --> 00:13:33.705
<00:13:31.125>the <00:13:31.325>map <00:13:31.525>name <00:13:31.725>over <00:13:31.925>there <00:13:32.125>and <00:13:32.325>that's <00:13:32.525>it.

244
00:13:34.285 --> 00:13:37.945
<00:13:34.285>And <00:13:34.401>then <00:13:34.518>of <00:13:34.635>course <00:13:34.751>you <00:13:34.868>need <00:13:34.985>to <00:13:35.101>add <00:13:35.218>an <00:13:35.334>HT <00:13:35.451>ML <00:13:35.568>deck <00:13:35.685>so

245
00:13:37.945 --> 00:13:40.225
<00:13:37.945>that <00:13:38.295>your <00:13:38.645>single <00:13:38.995>page <00:13:39.345>application,

246
00:13:40.225 --> 00:13:41.945
<00:13:40.225>your <00:13:40.505>micro <00:13:40.785>front <00:13:41.065>that <00:13:41.345>is <00:13:41.625>displayed.

247
00:13:42.685 --> 00:13:45.665
<00:13:42.685>And <00:13:42.859>usually <00:13:43.035>you <00:13:43.209>want <00:13:43.385>to <00:13:43.560>wrap <00:13:43.734>those <00:13:43.910>three <00:13:44.084>lines

248
00:13:45.725 --> 00:13:48.145
<00:13:45.725>of <00:13:45.958>code <00:13:46.191>up <00:13:46.425>in <00:13:46.658>a <00:13:46.891>wrap <00:13:47.125>component.

249
00:13:48.805 --> 00:13:52.825
<00:13:48.805>You <00:13:48.979>can <00:13:49.155>activate <00:13:49.329>via <00:13:49.505>your <00:13:49.680>router, <00:13:49.854>your <00:13:50.030>React <00:13:50.204>router,

250
00:13:52.825 --> 00:13:55.505
<00:13:52.825>your <00:13:53.058>angle <00:13:53.291>or <00:13:53.525>router, <00:13:53.758>your <00:13:53.991>fuel <00:13:54.225>router.

251
00:13:56.365 --> 00:13:58.345
<00:13:56.365>And <00:13:56.598>of <00:13:56.831>course <00:13:57.065>it <00:13:57.298>would <00:13:57.531>make <00:13:57.765>sense

252
00:13:58.405 --> 00:14:00.665
<00:13:58.405>to <00:13:58.605>make <00:13:58.805>this <00:13:59.005>component <00:13:59.204>a <00:13:59.405>bit <00:13:59.605>more <00:13:59.805>generic.

253
00:14:01.245 --> 00:14:03.905
<00:14:01.245>We <00:14:01.420>don't <00:14:01.595>want <00:14:01.770>to <00:14:01.945>hard <00:14:02.120>code <00:14:02.295>those <00:14:02.470>strings <00:14:02.645>here.

254
00:14:04.295 --> 00:14:07.265
<00:14:04.295>Usually <00:14:04.528>we <00:14:04.761>have <00:14:04.995>some <00:14:05.228>parameters, <00:14:05.461>some <00:14:05.694>input,

255
00:14:07.335 --> 00:14:09.185
<00:14:07.335>some <00:14:07.685>properties <00:14:08.035>for <00:14:08.385>those <00:14:08.735>strings.

256
00:14:09.445 --> 00:14:11.865
<00:14:09.445>And <00:14:09.645>so <00:14:09.845>you <00:14:10.045>have <00:14:10.245>one <00:14:10.445>nice <00:14:10.645>simple <00:14:10.845>component

257
00:14:12.445 --> 00:14:15.865
<00:14:12.445>for <00:14:12.678>loading <00:14:12.911>everything <00:14:13.145>from <00:14:13.378>other <00:14:13.611>frameworks <00:14:13.845>and

258
00:14:15.885 --> 00:14:18.705
<00:14:15.885>or <00:14:16.235>other <00:14:16.585>versions <00:14:16.935>via <00:14:17.285>federation.

259
00:14:23.195 --> 00:14:28.135
<00:14:23.195>The <00:14:23.350>good <00:14:23.506>thing <00:14:23.661>is <00:14:23.817>as <00:14:23.972>you <00:14:24.128>are <00:14:24.283>using <00:14:24.439>web <00:14:24.595>components

260
00:14:28.655 --> 00:14:31.975
<00:14:28.655>together <00:14:28.810>with <00:14:28.966>federation, <00:14:29.121>you <00:14:29.277>get <00:14:29.432>the <00:14:29.588>best <00:14:29.743>of <00:14:29.899>both <00:14:30.055>worlds.

261
00:14:32.875 --> 00:14:34.935
<00:14:32.875>You <00:14:33.155>can <00:14:33.435>use <00:14:33.715>the <00:14:33.995>same <00:14:34.275>version

262
00:14:35.235 --> 00:14:38.575
<00:14:35.235>and <00:14:35.375>you <00:14:35.515>can <00:14:35.655>share <00:14:35.795>it <00:14:35.935>when <00:14:36.075>the <00:14:36.215>same <00:14:36.355>version <00:14:36.495>is <00:14:36.635>used

263
00:14:38.675 --> 00:14:40.615
<00:14:38.675>by <00:14:39.141>several <00:14:39.608>micro <00:14:40.074>front.

264
00:14:40.675 --> 00:14:42.295
<00:14:40.675>And <00:14:41.025>so <00:14:41.375>here <00:14:41.724>the <00:14:42.074>Shell

265
00:14:42.315 --> 00:14:46.055
<00:14:42.315>and <00:14:42.490>ME <00:14:42.665>one <00:14:42.840>is <00:14:43.015>sharing <00:14:43.190>angular <00:14:43.365>in <00:14:43.540>version <00:14:43.715>X.

266
00:14:46.845 --> 00:14:48.575
<00:14:46.845>However, <00:14:47.545>ME <00:14:48.245>two

267
00:14:48.595 --> 00:14:52.205
<00:14:48.595>and <00:14:48.795>MFE <00:14:48.995>three <00:14:49.195>needs <00:14:49.395>another <00:14:49.595>angular <00:14:49.795>angler <00:14:49.995>by

268
00:14:52.735 --> 00:14:55.085
<00:14:52.735>federation <00:14:53.015>will <00:14:53.295>find <00:14:53.575>out <00:14:53.855>at <00:14:54.135>runtime

269
00:14:55.385 --> 00:14:58.645
<00:14:55.385>and <00:14:55.560>make <00:14:55.735>sure <00:14:55.910>this <00:14:56.085>version <00:14:56.260>is <00:14:56.435>only <00:14:56.610>downloaded <00:14:56.785>once

270
00:14:58.985 --> 00:15:02.445
<00:14:58.985>and <00:14:59.265>shared <00:14:59.545>across <00:14:59.825>those <00:15:00.105>micro <00:15:00.385>rundowns.

271
00:15:02.945 --> 00:15:04.085
<00:15:02.945>And <00:15:03.201>you <00:15:03.458>can <00:15:03.714>also <00:15:03.971>go

272
00:15:04.275 --> 00:15:07.045
<00:15:04.275>with <00:15:04.508>other <00:15:04.741>frameworks <00:15:04.975>like <00:15:05.208>React <00:15:05.441>for <00:15:05.675>instance.

273
00:15:07.145 --> 00:15:10.525
<00:15:07.145>So <00:15:07.285>the <00:15:07.425>best <00:15:07.564>of <00:15:07.704>both <00:15:07.845>worlds, <00:15:07.985>if <00:15:08.125>it's <00:15:08.265>possible, <00:15:08.405>it's <00:15:08.545>shared.

274
00:15:10.905 --> 00:15:12.085
<00:15:10.905>If <00:15:11.259>it's <00:15:11.613>not <00:15:11.967>possible,

275
00:15:12.345 --> 00:15:15.085
<00:15:12.345>you <00:15:12.545>bring <00:15:12.745>your <00:15:12.945>own <00:15:13.145>version <00:15:13.345>of <00:15:13.545>a <00:15:13.745>framework.

276
00:15:16.465 --> 00:15:19.765
<00:15:16.465>So <00:15:16.605>let <00:15:16.745>me <00:15:16.885>show <00:15:17.025>you <00:15:17.165>an <00:15:17.305>demonstration <00:15:17.445>for <00:15:17.585>all <00:15:17.725>of <00:15:17.865>this

277
00:15:25.875 --> 00:15:28.125
<00:15:25.875>here <00:15:26.155>I <00:15:26.435>have <00:15:26.715>a <00:15:26.995>simple <00:15:27.275>application.

278
00:15:28.595 --> 00:15:31.645
<00:15:28.595>This <00:15:28.828>application <00:15:29.061>was <00:15:29.295>built <00:15:29.528>with <00:15:29.761>OLA <00:15:29.995>14.

279
00:15:32.075 --> 00:15:35.125
<00:15:32.075>This <00:15:32.250>shows <00:15:32.425>we <00:15:32.600>are <00:15:32.775>doing <00:15:32.950>this <00:15:33.125>style <00:15:33.300>of <00:15:33.475>architecture

280
00:15:35.125 --> 00:15:36.365
<00:15:35.125>for <00:15:35.404>quite <00:15:35.683>a <00:15:35.962>time <00:15:36.241>now.

281
00:15:37.185 --> 00:15:39.005
<00:15:37.185>And <00:15:37.464>if <00:15:37.744>we <00:15:38.025>are <00:15:38.305>loading <00:15:38.584>here,

282
00:15:39.025 --> 00:15:42.925
<00:15:39.025>the <00:15:39.152>first <00:15:39.279>micro <00:15:39.406>front <00:15:39.534>end <00:15:39.661>we <00:15:39.788>see <00:15:39.915>well <00:15:40.043>this <00:15:40.170>is <00:15:40.297>also <00:15:40.425>built

283
00:15:42.925 --> 00:15:44.165
<00:15:42.925>with <00:15:43.483>OLA <00:15:44.040>14

284
00:15:44.705 --> 00:15:48.205
<00:15:44.705>and <00:15:44.845>so <00:15:44.985>we <00:15:45.125>don't <00:15:45.265>need <00:15:45.405>to <00:15:45.545>download <00:15:45.685>Ola <00:15:45.825>one <00:15:45.965>more <00:15:46.105>time.

285
00:15:48.615 --> 00:15:50.285
<00:15:48.615>Angle <00:15:48.965>of <00:15:49.315>14 <00:15:49.665>is <00:15:50.015>shared

286
00:15:50.355 --> 00:15:53.085
<00:15:50.355>between <00:15:50.705>those <00:15:51.055>two <00:15:51.405>independent <00:15:51.755>applications.

287
00:15:54.355 --> 00:15:56.445
<00:15:54.355>Here <00:15:54.635>I'm <00:15:54.915>loading <00:15:55.195>a <00:15:55.475>React <00:15:55.755>application.

288
00:15:56.865 --> 00:16:00.325
<00:15:56.865>And <00:15:57.020>so <00:15:57.176>of <00:15:57.331>course <00:15:57.487>React <00:15:57.642>needs <00:15:57.798>to <00:15:57.953>be <00:15:58.109>downloaded <00:15:58.265>once

289
00:16:00.945 --> 00:16:02.525
<00:16:00.945>but <00:16:01.225>only <00:16:01.505>once <00:16:01.785>in <00:16:02.065>this <00:16:02.345>version.

290
00:16:03.025 --> 00:16:04.845
<00:16:03.025>If <00:16:03.305>I <00:16:03.584>had <00:16:03.865>another <00:16:04.145>micro <00:16:04.425>front

291
00:16:04.865 --> 00:16:07.205
<00:16:04.865>and <00:16:05.145>also <00:16:05.425>using <00:16:05.705>angle <00:16:05.985>of <00:16:06.265>17,

292
00:16:07.315 --> 00:16:09.125
<00:16:07.315>it's <00:16:07.515>quite <00:16:07.715>an <00:16:07.915>old <00:16:08.115>version, <00:16:08.315>I'm <00:16:08.515>very <00:16:08.715>sorry.

293
00:16:09.755 --> 00:16:11.805
<00:16:09.755>Then <00:16:09.988>it <00:16:10.221>would <00:16:10.455>be <00:16:10.688>shared <00:16:10.921>at <00:16:11.155>runtime.

294
00:16:12.395 --> 00:16:16.565
<00:16:12.395>Well <00:16:12.535>look <00:16:12.675>here, <00:16:12.814>those <00:16:12.954>three <00:16:13.095>guys <00:16:13.235>here <00:16:13.375>are <00:16:13.515>using <00:16:13.655>OLA <00:16:13.795>12

295
00:16:20.735 --> 00:16:22.635
<00:16:20.735>and <00:16:20.968>angle <00:16:21.201>at <00:16:21.435>valve <00:16:21.668>is <00:16:21.901>shared <00:16:22.135>here.

296
00:16:22.825 --> 00:16:24.115
<00:16:22.825>It's <00:16:23.212>only <00:16:23.599>downloaded <00:16:23.986>once.

297
00:16:24.655 --> 00:16:27.635
<00:16:24.655>And <00:16:24.810>then <00:16:24.966>I <00:16:25.121>just <00:16:25.277>need <00:16:25.432>to <00:16:25.588>download <00:16:25.743>the <00:16:25.899>source <00:16:26.055>code

298
00:16:27.635 --> 00:16:28.635
<00:16:27.635>of <00:16:28.085>the <00:16:28.535>application.

299
00:16:30.025 --> 00:16:32.275
<00:16:30.025>Here <00:16:30.258>we <00:16:30.491>have <00:16:30.725>something <00:16:30.958>special <00:16:31.191>that's <00:16:31.425>fun.

300
00:16:32.745 --> 00:16:35.675
<00:16:32.745>This <00:16:32.920>Angular <00:16:33.095>application <00:16:33.270>has <00:16:33.445>a <00:16:33.620>route <00:16:33.795>of <00:16:33.970>its <00:16:34.145>own.

301
00:16:37.055 --> 00:16:40.275
<00:16:37.055>And <00:16:37.334>now <00:16:37.614>this <00:16:37.895>brings <00:16:38.175>some <00:16:38.454>difficulties

302
00:16:40.705 --> 00:16:44.795
<00:16:40.705>because <00:16:40.938>usually <00:16:41.171>a <00:16:41.405>single <00:16:41.638>page <00:16:41.871>application <00:16:42.105>assumes

303
00:16:45.105 --> 00:16:47.995
<00:16:45.105>that <00:16:45.338>the <00:16:45.571>route <00:16:45.805>the <00:16:46.038>URL <00:16:46.271>up <00:16:46.505>there

304
00:16:48.505 --> 00:16:50.155
<00:16:48.505>belongs <00:16:48.971>fully <00:16:49.438>to <00:16:49.905>itself.

305
00:16:50.945 --> 00:16:54.995
<00:16:50.945>It's <00:16:51.072>like <00:16:51.199>Louis <00:16:51.326>the <00:16:51.454>four <00:16:51.581>who <00:16:51.708>said <00:16:51.835>I <00:16:51.963>am <00:16:52.090>the <00:16:52.217>state <00:16:52.345>here.

306
00:16:55.015 --> 00:16:57.675
<00:16:55.015>The <00:16:55.215>router <00:16:55.415>is <00:16:55.615>saying <00:16:55.814>I <00:16:56.015>am <00:16:56.215>the <00:16:56.415>URL.

307
00:16:58.305 --> 00:17:00.195
<00:16:58.305>That <00:16:58.505>means <00:16:58.704>we <00:16:58.905>need <00:16:59.104>to <00:16:59.305>find <00:16:59.505>a <00:16:59.704>way

308
00:17:00.255 --> 00:17:04.115
<00:17:00.255>and <00:17:00.382>you <00:17:00.509>can <00:17:00.636>do <00:17:00.764>this <00:17:00.891>in <00:17:01.018>all <00:17:01.145>the <00:17:01.273>frameworks <00:17:01.400>to <00:17:01.527>make <00:17:01.655>sure

309
00:17:04.705 --> 00:17:07.755
<00:17:04.704>that <00:17:04.879>the <00:17:05.054>router <00:17:05.230>is <00:17:05.405>only <00:17:05.579>looking <00:17:05.754>at <00:17:05.929>a <00:17:06.105>specific

310
00:17:07.785 --> 00:17:09.275
<00:17:07.785>segment <00:17:08.232>of <00:17:08.679>the <00:17:09.126>URL.

311
00:17:09.815 --> 00:17:13.355
<00:17:09.815>So <00:17:09.990>in <00:17:10.165>there, <00:17:10.340>this <00:17:10.515>guy <00:17:10.690>here <00:17:10.865>is <00:17:11.040>only <00:17:11.215>allowed

312
00:17:13.355 --> 00:17:14.835
<00:17:13.355>to <00:17:13.621>look <00:17:13.887>at <00:17:14.154>the <00:17:14.420>second <00:17:14.687>segment

313
00:17:16.315 --> 00:17:19.055
<00:17:16.315>and <00:17:16.548>this <00:17:16.781>guy <00:17:17.015>here <00:17:17.248>is <00:17:17.481>only <00:17:17.715>allowed

314
00:17:19.055 --> 00:17:20.975
<00:17:19.055>to <00:17:19.288>look <00:17:19.521>at <00:17:19.755>this <00:17:19.988>first <00:17:20.221>segment <00:17:20.455>here.

315
00:17:21.595 --> 00:17:26.375
<00:17:21.595>That's <00:17:21.722>a <00:17:21.849>matter <00:17:21.976>of <00:17:22.104>configuration <00:17:22.231>by <00:17:22.358>the <00:17:22.485>way, <00:17:22.613>as <00:17:22.740>I <00:17:22.867>don't <00:17:22.995>want

316
00:17:26.595 --> 00:17:30.775
<00:17:26.595>to <00:17:26.875>uh, <00:17:27.155>make <00:17:27.435>someone <00:17:27.714>feel <00:17:27.995>bad.

317
00:17:31.015 --> 00:17:33.815
<00:17:31.015>I <00:17:31.190>also <00:17:31.365>have <00:17:31.540>a <00:17:31.715>few <00:17:31.890>example <00:17:32.065>included <00:17:32.240>here <00:17:32.415>also

318
00:17:33.815 --> 00:17:34.855
<00:17:33.815>here <00:17:34.127>in <00:17:34.439>older <00:17:34.751>version.

319
00:17:35.595 --> 00:17:37.335
<00:17:35.595>And <00:17:35.875>I <00:17:36.155>even <00:17:36.435>have <00:17:36.715>angular <00:17:36.995>chess.

320
00:17:38.355 --> 00:17:41.855
<00:17:38.355>And <00:17:38.510>I <00:17:38.666>think <00:17:38.821>this <00:17:38.977>shows <00:17:39.132>that <00:17:39.288>this <00:17:39.443>style <00:17:39.599>of <00:17:39.755>architecture

321
00:17:42.595 --> 00:17:43.615
<00:17:42.595>is <00:17:43.054>also <00:17:43.513>good

322
00:17:43.715 --> 00:17:48.095
<00:17:43.715>to <00:17:43.889>migrate <00:17:44.064>away <00:17:44.240>from <00:17:44.415>an <00:17:44.590>older <00:17:44.764>technology <00:17:44.939>stack <00:17:45.115>little

323
00:17:48.155 --> 00:17:51.445
<00:17:48.155>by <00:17:48.310>little, <00:17:48.466>which <00:17:48.621>happens <00:17:48.777>quite <00:17:48.932>a <00:17:49.088>lot <00:17:49.243>in <00:17:49.399>the <00:17:49.555>enterprise

324
00:17:51.895 --> 00:17:55.525
<00:17:51.895>where <00:17:52.095>you <00:17:52.295>have <00:17:52.495>applications <00:17:52.695>that <00:17:52.895>last <00:17:53.095>for <00:17:53.295>decades.

325
00:17:56.065 --> 00:17:59.285
<00:17:56.065>If <00:17:56.265>you <00:17:56.465>think <00:17:56.665>about <00:17:56.865>banks, <00:17:57.065>insurances, <00:17:57.265>they <00:17:57.465>have

326
00:17:59.285 --> 00:18:00.845
<00:17:59.285>to <00:17:59.635>be <00:17:59.985>maintained <00:18:00.335>for <00:18:00.685>decades.

327
00:18:02.715 --> 00:18:04.645
<00:18:02.715>Here <00:18:02.889>I <00:18:03.064>have <00:18:03.240>something <00:18:03.415>that <00:18:03.590>is <00:18:03.764>a <00:18:03.939>bit <00:18:04.115>brutal.

328
00:18:05.685 --> 00:18:10.005
<00:18:05.685>I <00:18:05.840>call <00:18:05.996>it <00:18:06.151>that <00:18:06.307>dashboard <00:18:06.462>from <00:18:06.618>hell, <00:18:06.773>dashboard <00:18:06.929>from <00:18:07.085>hell.

329
00:18:10.275 --> 00:18:14.285
<00:18:10.275>Because <00:18:10.508>in <00:18:10.741>order <00:18:10.975>to <00:18:11.208>run <00:18:11.441>this <00:18:11.675>dashboard

330
00:18:15.745 --> 00:18:20.365
<00:18:15.745>we <00:18:15.919>have <00:18:16.094>to <00:18:16.270>load <00:18:16.445>several <00:18:16.620>frameworks, <00:18:16.794>react <00:18:16.969>and <00:18:17.145>angle

331
00:18:20.625 --> 00:18:21.805
<00:18:20.625>and <00:18:20.890>view <00:18:21.156>and <00:18:21.421>so <00:18:21.687>on.

332
00:18:22.395 --> 00:18:24.245
<00:18:22.395>Usually <00:18:22.675>you <00:18:22.955>want <00:18:23.235>to <00:18:23.514>avoid <00:18:23.795>this.

333
00:18:24.635 --> 00:18:26.765
<00:18:24.635>Perhaps <00:18:24.915>you <00:18:25.195>can <00:18:25.475>share <00:18:25.754>some <00:18:26.035>data

334
00:18:26.955 --> 00:18:30.765
<00:18:26.955>between <00:18:27.155>your <00:18:27.355>micro <00:18:27.554>front <00:18:27.754>end <00:18:27.955>some <00:18:28.155>data <00:18:28.355>so

335
00:18:30.765 --> 00:18:32.045
<00:18:30.765>that <00:18:31.341>this <00:18:31.917>dashboard,

336
00:18:32.135 --> 00:18:34.325
<00:18:32.135>let's <00:18:32.368>call <00:18:32.601>it <00:18:32.835>dashboard <00:18:33.068>micro <00:18:33.301>front <00:18:33.535>end,

337
00:18:34.745 --> 00:18:36.965
<00:18:34.745>can <00:18:35.024>build <00:18:35.304>those <00:18:35.584>styles <00:18:35.864>by <00:18:36.145>itself.

338
00:18:38.205 --> 00:18:41.815
<00:18:38.205>What <00:18:38.332>I <00:18:38.459>really <00:18:38.586>try <00:18:38.714>to <00:18:38.841>do <00:18:38.968>is <00:18:39.095>a <00:18:39.223>vertical <00:18:39.350>integration <00:18:39.477>on <00:18:39.605>the

339
00:18:41.815 --> 00:18:43.975
<00:18:41.815>level <00:18:42.048>of <00:18:42.281>the <00:18:42.515>main <00:18:42.748>menu <00:18:42.981>items <00:18:43.215>here.

340
00:18:47.805 --> 00:18:51.955
<00:18:47.805>Okay, <00:18:48.005>so <00:18:48.205>perhaps <00:18:48.405>you <00:18:48.605>are <00:18:48.805>wondering <00:18:49.005>is <00:18:49.205>this

341
00:18:51.955 --> 00:18:53.155
<00:18:51.955>really <00:18:52.495>that <00:18:53.034>simple?

342
00:18:53.815 --> 00:18:56.115
<00:18:53.815>And <00:18:54.165>the <00:18:54.515>answer <00:18:54.865>is <00:18:55.215>no.

343
00:18:56.685 --> 00:19:00.275
<00:18:56.685>There <00:18:56.840>are <00:18:56.996>are <00:18:57.151>some <00:18:57.307>workarounds <00:18:57.462>needed <00:18:57.618>to <00:18:57.773>make <00:18:57.929>it <00:18:58.085>possible

344
00:19:00.505 --> 00:19:02.515
<00:19:00.505>that <00:19:00.855>several <00:19:01.205>versions <00:19:01.555>work <00:19:01.905>together.

345
00:19:03.015 --> 00:19:07.195
<00:19:03.015>Not <00:19:03.190>big <00:19:03.365>workarounds, <00:19:03.540>sometimes <00:19:03.715>just <00:19:03.890>free <00:19:04.065>lines <00:19:04.240>of <00:19:04.415>codes.

346
00:19:07.215 --> 00:19:09.755
<00:19:07.215>And <00:19:07.415>I <00:19:07.615>have <00:19:07.814>documented <00:19:08.014>some <00:19:08.215>of <00:19:08.415>them <00:19:08.615>here.

347
00:19:09.935 --> 00:19:12.995
<00:19:09.935>So <00:19:10.110>if <00:19:10.284>you <00:19:10.460>feel <00:19:10.635>fancy, <00:19:10.810>just <00:19:10.985>look <00:19:11.159>it <00:19:11.335>up.

348
00:19:14.695 --> 00:19:17.875
<00:19:14.695>So <00:19:14.895>perhaps <00:19:15.095>you're <00:19:15.294>wondering <00:19:15.495>what <00:19:15.695>are <00:19:15.895>the <00:19:16.095>alternatives

349
00:19:18.215 --> 00:19:19.915
<00:19:18.215>and <00:19:18.495>yeah, <00:19:18.774>there <00:19:19.054>are <00:19:19.334>some <00:19:19.615>alternatives.

350
00:19:20.375 --> 00:19:23.875
<00:19:20.375>For <00:19:20.550>instance, <00:19:20.725>you <00:19:20.900>could <00:19:21.075>go <00:19:21.250>with <00:19:21.425>one <00:19:21.600>monolithic <00:19:21.775>application,

351
00:19:24.535 --> 00:19:28.555
<00:19:24.535>one <00:19:24.735>big <00:19:24.935>application <00:19:25.135>several <00:19:25.335>teams <00:19:25.535>are <00:19:25.735>contributing <00:19:25.935>to.

352
00:19:29.505 --> 00:19:32.675
<00:19:29.505>Then <00:19:29.705>you <00:19:29.905>don't <00:19:30.105>have <00:19:30.305>issues <00:19:30.505>with <00:19:30.705>version <00:19:30.905>mismatches.

353
00:19:32.905 --> 00:19:36.515
<00:19:32.905>However <00:19:33.105>you <00:19:33.305>are <00:19:33.504>trading <00:19:33.705>in <00:19:33.905>some <00:19:34.105>team <00:19:34.305>autonomy.

354
00:19:37.225 --> 00:19:38.995
<00:19:37.225>When <00:19:37.504>it <00:19:37.784>comes <00:19:38.064>to <00:19:38.344>software <00:19:38.625>architecture,

355
00:19:39.145 --> 00:19:41.555
<00:19:39.145>it's <00:19:39.425>always <00:19:39.705>about <00:19:39.985>trade-offs, <00:19:40.264>isn't <00:19:40.545>it?

356
00:19:42.095 --> 00:19:44.435
<00:19:42.095>Or <00:19:42.295>you <00:19:42.495>could <00:19:42.695>go <00:19:42.895>with <00:19:43.095>a <00:19:43.295>mono <00:19:43.495>repository

357
00:19:44.615 --> 00:19:46.355
<00:19:44.615>and <00:19:45.081>several <00:19:45.548>micro <00:19:46.015>fronts

358
00:19:47.245 --> 00:19:49.635
<00:19:47.245>still <00:19:47.524>you <00:19:47.804>can <00:19:48.084>deploy <00:19:48.364>them <00:19:48.645>separately,

359
00:19:50.215 --> 00:19:53.915
<00:19:50.215>but <00:19:50.355>the <00:19:50.495>mono <00:19:50.635>repository, <00:19:50.774>make <00:19:50.915>sure <00:19:51.054>you <00:19:51.195>only <00:19:51.334>have <00:19:51.475>one <00:19:51.615>version

360
00:19:54.215 --> 00:19:55.635
<00:19:54.215>and <00:19:54.640>no <00:19:55.067>version <00:19:55.493>conflicts.

361
00:19:57.055 --> 00:20:01.235
<00:19:57.055>Or <00:19:57.210>you <00:19:57.366>could <00:19:57.521>use <00:19:57.677>governance, <00:19:57.832>making <00:19:57.988>sure <00:19:58.143>with <00:19:58.299>some <00:19:58.455>tools

362
00:20:01.345 --> 00:20:02.355
<00:20:01.345>that <00:20:01.648>here <00:20:01.951>and <00:20:02.254>there.

363
00:20:02.415 --> 00:20:04.795
<00:20:02.415>And <00:20:02.615>over <00:20:02.815>there <00:20:03.014>the <00:20:03.215>same <00:20:03.415>version <00:20:03.615>is <00:20:03.815>used.

364
00:20:06.375 --> 00:20:10.635
<00:20:06.375>Of <00:20:06.502>course, <00:20:06.629>in <00:20:06.756>all <00:20:06.884>those <00:20:07.011>cases <00:20:07.138>you <00:20:07.265>are <00:20:07.393>trading <00:20:07.520>in <00:20:07.647>some <00:20:07.775>team

365
00:20:10.995 --> 00:20:15.195
<00:20:10.995>autonomy <00:20:11.195>to <00:20:11.395>get <00:20:11.594>less <00:20:11.794>issues <00:20:11.995>with <00:20:12.195>different <00:20:12.395>versions.

366
00:20:16.015 --> 00:20:19.955
<00:20:16.015>You <00:20:16.215>could <00:20:16.415>use <00:20:16.615>hyperlinks, <00:20:16.815>you <00:20:17.015>could <00:20:17.215>use <00:20:17.415>iframes.

367
00:20:20.155 --> 00:20:23.755
<00:20:20.155>I <00:20:20.295>know <00:20:20.435>iframes <00:20:20.575>are <00:20:20.715>not <00:20:20.855>the <00:20:20.995>most <00:20:21.135>famous <00:20:21.274>uh <00:20:21.415>solution <00:20:21.555>there.

368
00:20:24.135 --> 00:20:26.275
<00:20:24.135>Or <00:20:24.335>you <00:20:24.535>could <00:20:24.735>just <00:20:24.935>go <00:20:25.135>with <00:20:25.335>web <00:20:25.535>components.

369
00:20:27.495 --> 00:20:29.675
<00:20:27.495>In <00:20:27.695>all <00:20:27.895>those <00:20:28.094>cases <00:20:28.294>you <00:20:28.495>have <00:20:28.695>some <00:20:28.895>trade-offs.

370
00:20:30.575 --> 00:20:32.875
<00:20:30.575>For <00:20:30.750>instance, <00:20:30.925>if <00:20:31.100>you <00:20:31.275>just <00:20:31.450>go <00:20:31.625>with <00:20:31.800>web <00:20:31.975>components,

371
00:20:33.095 --> 00:20:36.035
<00:20:33.095>you <00:20:33.375>cannot <00:20:33.655>share <00:20:33.935>dependencies <00:20:34.215>via <00:20:34.495>federation.

372
00:20:37.385 --> 00:20:40.555
<00:20:37.385>Here <00:20:37.585>you <00:20:37.785>see <00:20:37.985>a <00:20:38.185>screenshot <00:20:38.385>from <00:20:38.585>a <00:20:38.785>monolith,

373
00:20:41.055 --> 00:20:44.555
<00:20:41.055>one <00:20:41.288>big <00:20:41.521>application <00:20:41.755>several <00:20:41.988>teams <00:20:42.221>contributes <00:20:42.455>to.

374
00:20:45.295 --> 00:20:47.965
<00:20:45.295>And <00:20:45.495>here <00:20:45.695>usually <00:20:45.895>you <00:20:46.095>want <00:20:46.295>to <00:20:46.495>make <00:20:46.695>sure

375
00:20:48.035 --> 00:20:52.565
<00:20:48.035>that <00:20:48.162>one <00:20:48.289>team <00:20:48.416>is <00:20:48.544>not <00:20:48.671>using <00:20:48.798>too <00:20:48.925>much <00:20:49.053>stuff <00:20:49.180>of <00:20:49.307>another <00:20:49.435>team

376
00:20:53.275 --> 00:20:57.005
<00:20:53.275>because <00:20:53.430>if <00:20:53.586>this <00:20:53.741>team <00:20:53.897>here <00:20:54.052>changes <00:20:54.208>something, <00:20:54.363>you <00:20:54.519>don't <00:20:54.675>want

377
00:20:57.005 --> 00:20:59.685
<00:20:57.005>that <00:20:57.160>over <00:20:57.316>there <00:20:57.471>in <00:20:57.627>the <00:20:57.782>other <00:20:57.938>team, <00:20:58.093>something <00:20:58.249>is <00:20:58.405>breaking.

378
00:21:00.185 --> 00:21:02.085
<00:21:00.185>And <00:21:00.418>you <00:21:00.651>can <00:21:00.885>do <00:21:01.118>this <00:21:01.351>via <00:21:01.585>linking.

379
00:21:02.625 --> 00:21:07.205
<00:21:02.625>So <00:21:02.752>here <00:21:02.879>I <00:21:03.006>am <00:21:03.134>in <00:21:03.261>the <00:21:03.388>ticketing <00:21:03.515>space, <00:21:03.643>in <00:21:03.770>the <00:21:03.897>ticketing <00:21:04.025>domain

380
00:21:07.985 --> 00:21:10.885
<00:21:07.985>and <00:21:08.185>this <00:21:08.385>domain <00:21:08.584>is <00:21:08.784>supported <00:21:08.985>by <00:21:09.185>one <00:21:09.385>deem

381
00:21:11.145 --> 00:21:12.525
<00:21:11.145>and <00:21:11.393>I <00:21:11.641>want <00:21:11.890>to <00:21:12.138>grab <00:21:12.387>over

382
00:21:12.585 --> 00:21:14.845
<00:21:12.585>to <00:21:12.818>the <00:21:13.051>checkin <00:21:13.285>domain <00:21:13.518>of <00:21:13.751>another <00:21:13.985>deem.

383
00:21:15.585 --> 00:21:18.605
<00:21:15.585>And <00:21:15.785>by <00:21:15.985>configuration, <00:21:16.185>the <00:21:16.385>Linda <00:21:16.585>is <00:21:16.785>telling <00:21:16.985>me,

384
00:21:18.625 --> 00:21:19.965
<00:21:18.625>Hey <00:21:19.027>maned, <00:21:19.428>hands <00:21:19.831>off.

385
00:21:20.305 --> 00:21:22.925
<00:21:20.305>You <00:21:20.505>are <00:21:20.705>not <00:21:20.905>allowed <00:21:21.105>to <00:21:21.305>grab <00:21:21.505>over <00:21:21.705>there.

386
00:21:25.805 --> 00:21:29.665
<00:21:25.805>And <00:21:25.932>to <00:21:26.059>do <00:21:26.186>this <00:21:26.314>you <00:21:26.441>can <00:21:26.568>use <00:21:26.695>different <00:21:26.823>tools <00:21:26.950>like <00:21:27.077>an <00:21:27.205>X

387
00:21:29.845 --> 00:21:30.905
<00:21:29.845>or <00:21:30.322>C <00:21:30.799>Rrif.

388
00:21:31.085 --> 00:21:34.825
<00:21:31.085>So <00:21:31.260>if <00:21:31.435>you <00:21:31.610>are <00:21:31.785>interested <00:21:31.960>into <00:21:32.135>this <00:21:32.310>architectural <00:21:32.485>style,

389
00:21:35.255 --> 00:21:36.665
<00:21:35.255>then <00:21:35.678>look <00:21:36.101>them <00:21:36.524>up.

390
00:21:37.485 --> 00:21:39.625
<00:21:37.485>So <00:21:37.659>last <00:21:37.834>but <00:21:38.010>not <00:21:38.185>least, <00:21:38.360>the <00:21:38.534>big <00:21:38.709>question <00:21:38.885>is

391
00:21:39.735 --> 00:21:41.305
<00:21:39.735>what <00:21:40.014>are <00:21:40.294>the <00:21:40.574>costs <00:21:40.854>of <00:21:41.135>this?

392
00:21:42.285 --> 00:21:45.185
<00:21:42.285>And <00:21:42.485>I <00:21:42.685>think <00:21:42.885>meanwhile <00:21:43.085>I <00:21:43.285>found <00:21:43.485>a <00:21:43.685>currency

393
00:21:45.965 --> 00:21:49.785
<00:21:45.965>for <00:21:46.165>expressing <00:21:46.365>those <00:21:46.564>costs <00:21:46.764>that <00:21:46.965>is <00:21:47.165>quite <00:21:47.365>current

394
00:21:50.605 --> 00:21:52.025
<00:21:50.605>and <00:21:50.924>that <00:21:51.244>is <00:21:51.563>manager <00:21:51.883>proof.

395
00:21:53.255 --> 00:21:55.145
<00:21:53.255>When <00:21:53.488>you <00:21:53.721>go <00:21:53.955>with <00:21:54.188>micro <00:21:54.421>front <00:21:54.655>ends,

396
00:21:55.145 --> 00:21:58.425
<00:21:55.145>you <00:21:55.345>have <00:21:55.545>several <00:21:55.745>teams <00:21:55.945>streamline <00:21:56.145>teams <00:21:56.345>that <00:21:56.545>want

397
00:21:58.425 --> 00:22:00.905
<00:21:58.425>to <00:21:58.658>produce <00:21:58.891>business <00:21:59.125>values <00:21:59.358>in <00:21:59.591>their <00:21:59.825>areas.

398
00:22:02.085 --> 00:22:03.985
<00:22:02.085>And <00:22:02.365>in <00:22:02.645>addition <00:22:02.925>to <00:22:03.205>those <00:22:03.485>teams,

399
00:22:04.365 --> 00:22:06.185
<00:22:04.365>you <00:22:04.645>need <00:22:04.925>a <00:22:05.205>little <00:22:05.485>platform <00:22:05.765>team

400
00:22:07.015 --> 00:22:09.865
<00:22:07.015>providing <00:22:07.248>all <00:22:07.481>those <00:22:07.715>workarounds <00:22:07.948>you <00:22:08.181>might <00:22:08.415>need,

401
00:22:10.335 --> 00:22:13.265
<00:22:10.335>providing <00:22:10.801>samples, <00:22:11.268>providing <00:22:11.735>guidelines,

402
00:22:13.975 --> 00:22:16.025
<00:22:13.975>providing <00:22:14.441>perhaps <00:22:14.908>helper <00:22:15.375>functions.

403
00:22:16.785 --> 00:22:19.865
<00:22:16.785>I <00:22:17.018>have <00:22:17.251>seen <00:22:17.485>companies <00:22:17.718>with <00:22:17.951>80 <00:22:18.185>teams

404
00:22:21.535 --> 00:22:24.865
<00:22:21.535>atns <00:22:21.690>more <00:22:21.846>stream <00:22:22.001>aligned <00:22:22.157>teams <00:22:22.312>working <00:22:22.468>on <00:22:22.623>their <00:22:22.779>micro <00:22:22.935>front

405
00:22:24.935 --> 00:22:29.905
<00:22:24.935>ends <00:22:25.090>and <00:22:25.246>they <00:22:25.401>had <00:22:25.557>just <00:22:25.712>one <00:22:25.868>simple <00:22:26.023>tiny <00:22:26.179>micro <00:22:26.335>front

406
00:22:30.005 --> 00:22:32.585
<00:22:30.005>end <00:22:30.205>platform <00:22:30.405>team <00:22:30.605>with <00:22:30.805>free <00:22:31.005>of <00:22:31.205>our <00:22:31.405>people

407
00:22:33.175 --> 00:22:35.185
<00:22:33.175>providing <00:22:33.524>stuff <00:22:33.875>as <00:22:34.225>a <00:22:34.575>service.

408
00:22:36.015 --> 00:22:38.545
<00:22:36.015>That <00:22:36.295>means <00:22:36.575>they <00:22:36.855>provide <00:22:37.135>guidelines, <00:22:37.415>examples,

409
00:22:38.685 --> 00:22:40.865
<00:22:38.685>helper <00:22:39.034>functions <00:22:39.385>and <00:22:39.735>so <00:22:40.085>on.

410
00:22:41.205 --> 00:22:44.305
<00:22:41.205>So <00:22:41.379>those <00:22:41.554>are <00:22:41.730>the <00:22:41.905>costs <00:22:42.080>of <00:22:42.254>this <00:22:42.429>architectural <00:22:42.605>style.

411
00:22:44.455 --> 00:22:48.425
<00:22:44.455>However, <00:22:44.688>chances <00:22:44.921>are <00:22:45.155>you <00:22:45.388>need <00:22:45.621>some <00:22:45.855>kind

412
00:22:48.425 --> 00:22:53.105
<00:22:48.425>of <00:22:48.580>platform <00:22:48.736>team <00:22:48.891>anyway <00:22:49.047>when <00:22:49.202>you <00:22:49.358>have <00:22:49.513>several <00:22:49.669>stream <00:22:49.825>aligned

413
00:22:53.105 --> 00:22:56.705
<00:22:53.105>teams <00:22:53.338>contributing <00:22:53.571>to <00:22:53.805>the <00:22:54.038>same <00:22:54.271>software <00:22:54.505>system.

414
00:22:58.445 --> 00:23:02.425
<00:22:58.445>So <00:22:58.620>if <00:22:58.794>you <00:22:58.970>like <00:22:59.145>all <00:22:59.320>those <00:22:59.495>ideas, <00:22:59.669>then <00:22:59.845>uh,

415
00:23:02.425 --> 00:23:04.825
<00:23:02.425>please <00:23:02.658>look <00:23:02.891>up <00:23:03.125>my <00:23:03.358>free <00:23:03.591>ebook <00:23:03.825>here.

416
00:23:05.175 --> 00:23:07.025
<00:23:05.175>It's <00:23:05.455>meanwhile <00:23:05.735>in <00:23:06.014>the <00:23:06.294>sixth <00:23:06.575>edition

417
00:23:07.685 --> 00:23:11.465
<00:23:07.685>and <00:23:07.801>we <00:23:07.918>have <00:23:08.034>20 <00:23:08.151>chapters <00:23:08.268>about <00:23:08.385>all <00:23:08.501>of <00:23:08.618>this <00:23:08.735>and <00:23:08.851>a <00:23:08.968>lot <00:23:09.085>more.

418
00:23:13.755 --> 00:23:15.175
<00:23:13.755>Let <00:23:14.010>me <00:23:14.266>come <00:23:14.521>to <00:23:14.777>a <00:23:15.033>conclusion.

419
00:23:15.795 --> 00:23:18.335
<00:23:15.795>We <00:23:16.028>have <00:23:16.261>basically <00:23:16.495>seen <00:23:16.728>three <00:23:16.961>things <00:23:17.195>today.

420
00:23:18.675 --> 00:23:21.415
<00:23:18.675>We <00:23:18.875>have <00:23:19.075>seen <00:23:19.274>that <00:23:19.475>web <00:23:19.675>components <00:23:19.875>allow <00:23:20.075>you

421
00:23:21.435 --> 00:23:25.695
<00:23:21.435>to <00:23:21.668>abstract <00:23:21.901>way <00:23:22.135>the <00:23:22.368>differences <00:23:22.601>between <00:23:22.835>frameworks

422
00:23:25.875 --> 00:23:28.695
<00:23:25.875>and <00:23:26.155>libraries <00:23:26.435>so <00:23:26.715>you <00:23:26.995>can <00:23:27.275>mix

423
00:23:28.715 --> 00:23:30.255
<00:23:28.715>and <00:23:29.177>match <00:23:29.639>different <00:23:30.101>technologies.

424
00:23:30.995 --> 00:23:33.695
<00:23:30.995>And <00:23:31.195>we <00:23:31.395>have <00:23:31.594>also <00:23:31.794>seen <00:23:31.995>that <00:23:32.195>using <00:23:32.395>federation,

425
00:23:34.515 --> 00:23:35.775
<00:23:34.515>native <00:23:35.649>Federation

426
00:23:35.835 --> 00:23:38.335
<00:23:35.835>or <00:23:36.185>Module <00:23:36.535>Federation <00:23:36.885>allows <00:23:37.235>you

427
00:23:38.335 --> 00:23:40.175
<00:23:38.335>to <00:23:38.615>load <00:23:38.895>stuff <00:23:39.175>from <00:23:39.455>over <00:23:39.735>there,

428
00:23:40.785 --> 00:23:43.655
<00:23:40.785>stuff <00:23:40.985>you <00:23:41.185>did <00:23:41.385>not <00:23:41.585>know <00:23:41.785>at <00:23:41.985>compile <00:23:42.185>them,

429
00:23:44.115 --> 00:23:47.205
<00:23:44.115>and <00:23:44.270>you <00:23:44.426>can <00:23:44.581>share <00:23:44.737>dependencies <00:23:44.892>when <00:23:45.048>the <00:23:45.203>same <00:23:45.359>version <00:23:45.515>is

430
00:23:47.205 --> 00:23:50.165
<00:23:47.205>used, <00:23:47.438>when <00:23:47.671>you <00:23:47.905>need <00:23:48.138>a <00:23:48.371>different <00:23:48.605>version.

431
00:23:50.835 --> 00:23:54.205
<00:23:50.835>Then <00:23:51.010>of <00:23:51.185>course <00:23:51.360>this <00:23:51.535>different <00:23:51.710>version <00:23:51.885>is <00:23:52.060>loaded <00:23:52.235>on

432
00:23:54.225 --> 00:23:55.365
<00:23:54.225>demand <00:23:55.251>lazily.

433
00:23:55.865 --> 00:23:59.405
<00:23:55.865>And <00:23:56.040>last <00:23:56.215>but <00:23:56.390>not <00:23:56.565>least, <00:23:56.740>very <00:23:56.915>likely <00:23:57.090>to <00:23:57.265>succeed

434
00:23:59.405 --> 00:24:01.045
<00:23:59.405>with <00:23:59.871>this <00:24:00.338>architectural <00:24:00.805>style.

435
00:24:01.345 --> 00:24:05.085
<00:24:01.345>You <00:24:01.578>need <00:24:01.811>a <00:24:02.045>platform <00:24:02.278>team <00:24:02.511>providing <00:24:02.745>workarounds,

436
00:24:05.155 --> 00:24:07.885
<00:24:05.155>providing <00:24:05.504>guidelines <00:24:05.855>and <00:24:06.205>helper <00:24:06.555>functions.

437
00:24:08.315 --> 00:24:11.685
<00:24:08.315>Because <00:24:08.470>the <00:24:08.626>thing <00:24:08.781>is <00:24:08.937>here <00:24:09.092>you <00:24:09.248>are <00:24:09.403>leaving <00:24:09.559>the <00:24:09.715>space

438
00:24:11.745 --> 00:24:13.605
<00:24:11.745>of <00:24:12.211>a <00:24:12.678>default <00:24:13.145>architecture

439
00:24:14.105 --> 00:24:16.965
<00:24:14.105>and <00:24:14.338>you <00:24:14.571>have <00:24:14.805>your <00:24:15.038>own <00:24:15.271>special <00:24:15.505>architecture

440
00:24:17.115 --> 00:24:20.405
<00:24:17.115>that <00:24:17.315>might <00:24:17.515>be <00:24:17.715>necessary <00:24:17.915>when <00:24:18.115>several <00:24:18.315>teams <00:24:18.515>need

441
00:24:20.425 --> 00:24:22.005
<00:24:20.425>to <00:24:21.125>work <00:24:21.825>together.

442
00:24:23.465 --> 00:24:26.285
<00:24:23.465>And <00:24:23.620>that's <00:24:23.776>it. <00:24:23.931>So <00:24:24.087>here <00:24:24.242>you'll <00:24:24.398>find <00:24:24.553>my <00:24:24.709>contact <00:24:24.865>data.

443
00:24:27.315 --> 00:24:31.805
<00:24:27.315>I've <00:24:27.455>already <00:24:27.595>uploaded <00:24:27.735>my <00:24:27.875>examples <00:24:28.015>and <00:24:28.155>my <00:24:28.295>slides <00:24:28.435>to <00:24:28.575>my <00:24:28.715>block.

444
00:24:31.865 --> 00:24:33.605
<00:24:31.865>Please <00:24:32.331>find <00:24:32.798>everything <00:24:33.265>here

445
00:24:34.265 --> 00:24:36.685
<00:24:34.265>and <00:24:34.440>make <00:24:34.615>sure <00:24:34.790>to <00:24:34.965>follow <00:24:35.140>me <00:24:35.315>on <00:24:35.490>social <00:24:35.665>media

446
00:24:37.185 --> 00:24:39.045
<00:24:37.185>to <00:24:37.651>stay <00:24:38.118>in <00:24:38.585>contact.

447
00:24:39.735 --> 00:24:40.325
<00:24:39.735>Thank <00:24:40.266>you.