WEBVTT

1
00:00:05.115 --> 00:00:06.535
<00:00:05.115>Uh, <00:00:05.328>I'm <00:00:05.541>a <00:00:05.754>kid <00:00:05.967>of <00:00:06.180>the <00:00:06.393>nineties

2
00:00:07.035 --> 00:00:08.935
<00:00:07.035>and <00:00:07.210>you <00:00:07.385>know, <00:00:07.560>as <00:00:07.735>you <00:00:07.910>get <00:00:08.085>grow, <00:00:08.260>grow <00:00:08.435>older,

3
00:00:09.085 --> 00:00:11.415
<00:00:09.085>your <00:00:09.285>hair <00:00:09.485>gets <00:00:09.685>grayer, <00:00:09.885>you <00:00:10.085>get <00:00:10.285>more <00:00:10.485>nostalgic.

4
00:00:12.795 --> 00:00:16.135
<00:00:12.795>And <00:00:12.970>there's <00:00:13.145>three <00:00:13.320>things <00:00:13.495>from <00:00:13.670>the <00:00:13.844>late <00:00:14.020>two <00:00:14.195>thousands

5
00:00:16.135 --> 00:00:18.335
<00:00:16.135>that <00:00:16.290>I <00:00:16.446>appreciate <00:00:16.601>and <00:00:16.757>I <00:00:16.912>still <00:00:17.068>do <00:00:17.223>all <00:00:17.379>the <00:00:17.535>time.

6
00:00:20.655 --> 00:00:23.275
<00:00:20.655>The <00:00:20.795>first <00:00:20.935>one <00:00:21.075>is <00:00:21.215>whenever <00:00:21.355>the <00:00:21.495>Backstreet <00:00:21.635>Boys <00:00:21.775>come <00:00:21.915>on <00:00:22.055>every,

7
00:00:23.275 --> 00:00:24.755
<00:00:23.275>uh, <00:00:23.541>somewhere, <00:00:23.807>I <00:00:24.074>just <00:00:24.340>sing <00:00:24.607>along.

8
00:00:24.975 --> 00:00:26.955
<00:00:24.975>I'm <00:00:25.130>just <00:00:25.286>a <00:00:25.441>huge <00:00:25.597>fan <00:00:25.752>and <00:00:25.908>you <00:00:26.063>can <00:00:26.219>probably <00:00:26.375>tell

9
00:00:26.955 --> 00:00:29.275
<00:00:26.955>because <00:00:27.110>I <00:00:27.266>still <00:00:27.421>have <00:00:27.577>my <00:00:27.732>hair <00:00:27.888>like <00:00:28.043>the <00:00:28.199>Backstreet <00:00:28.354>Boys

10
00:00:29.275 --> 00:00:30.315
<00:00:29.275>25 <00:00:29.743>years <00:00:30.211>later.

11
00:00:31.305 --> 00:00:33.635
<00:00:31.305>There's <00:00:31.480>another <00:00:31.655>thing <00:00:31.830>though <00:00:32.005>that <00:00:32.180>I <00:00:32.354>do <00:00:32.530>quite <00:00:32.705>often

12
00:00:33.815 --> 00:00:36.155
<00:00:33.815>and <00:00:33.989>all <00:00:34.165>the <00:00:34.339>time, <00:00:34.515>which <00:00:34.690>is <00:00:34.864>use <00:00:35.040>rest <00:00:35.214>APIs.

13
00:00:36.975 --> 00:00:40.195
<00:00:36.975>And <00:00:37.102>while <00:00:37.229>rest <00:00:37.356>APIs <00:00:37.484>have <00:00:37.611>been <00:00:37.738>there <00:00:37.865>for <00:00:37.993>a <00:00:38.120>very <00:00:38.247>long <00:00:38.375>time,

14
00:00:40.265 --> 00:00:42.115
<00:00:40.265>like <00:00:40.498>the <00:00:40.731>main <00:00:40.965>definition <00:00:41.198>was <00:00:41.431>done <00:00:41.665>in

15
00:00:42.115 --> 00:00:43.675
<00:00:42.115>2000, <00:00:42.465>not <00:00:42.815>much <00:00:43.165>has <00:00:43.515>changed.

16
00:00:45.425 --> 00:00:49.355
<00:00:45.425>There's <00:00:45.565>been <00:00:45.705>some <00:00:45.845>tries <00:00:45.985>to <00:00:46.125>make <00:00:46.265>new, <00:00:46.404>uh, <00:00:46.544>protocols <00:00:46.684>to <00:00:46.824>make,

17
00:00:49.415 --> 00:00:50.675
<00:00:49.415>uh, <00:00:49.641>like <00:00:49.868>build <00:00:50.095>up <00:00:50.322>on <00:00:50.549>Jason,

18
00:00:51.135 --> 00:00:54.115
<00:00:51.135>but <00:00:51.309>up <00:00:51.485>until <00:00:51.660>this <00:00:51.835>day, <00:00:52.010>Jason <00:00:52.184>still <00:00:52.360>remains <00:00:52.535>one

19
00:00:54.115 --> 00:00:55.915
<00:00:54.115>of <00:00:54.348>the <00:00:54.581>most <00:00:54.815>used <00:00:55.048>APIs <00:00:55.281>out <00:00:55.515>there.

20
00:00:56.855 --> 00:00:58.715
<00:00:56.855>Um, <00:00:57.010>just <00:00:57.166>to <00:00:57.321>quickly <00:00:57.477>test <00:00:57.632>this, <00:00:57.788>I <00:00:57.943>would <00:00:58.099>really <00:00:58.254>like

21
00:00:58.955 --> 00:01:01.515
<00:00:58.955>to <00:00:59.110>get <00:00:59.266>a <00:00:59.421>quick <00:00:59.577>raise <00:00:59.732>of <00:00:59.888>hands, <00:01:00.043>um, <00:01:00.199>to <00:01:00.355>see

22
00:01:02.575 --> 00:01:04.715
<00:01:02.575>who <00:01:02.808>have <00:01:03.041>you <00:01:03.275>actually <00:01:03.508>works <00:01:03.741>with <00:01:03.975>APIs

23
00:01:04.715 --> 00:01:07.035
<00:01:04.715>or <00:01:04.855>has <00:01:04.995>worked <00:01:05.135>with <00:01:05.275>an <00:01:05.415>API <00:01:05.555>in <00:01:05.695>the <00:01:05.835>last <00:01:05.975>year, <00:01:06.115>not,

24
00:01:07.055 --> 00:01:09.275
<00:01:07.055>not <00:01:07.405>just <00:01:07.755>rest, <00:01:08.105>any <00:01:08.455>APIs.

25
00:01:09.465 --> 00:01:12.625
<00:01:09.465>Just <00:01:09.698>raise <00:01:09.931>your <00:01:10.165>hands <00:01:10.398>please. <00:01:10.631>Okay, <00:01:10.865>perfect.

26
00:01:12.885 --> 00:01:15.945
<00:01:12.885>Um, <00:01:13.001>at <00:01:13.118>least <00:01:13.235>in <00:01:13.351>the, <00:01:13.468>at <00:01:13.585>the <00:01:13.701>wrong <00:01:13.818>sta <00:01:13.935>at <00:01:14.051>the <00:01:14.168>correct <00:01:14.285>stage.

27
00:01:17.015 --> 00:01:18.705
<00:01:17.015>Perfect. <00:01:17.365>Um, <00:01:17.715>yeah, <00:01:18.065>so, <00:01:18.415>um,

28
00:01:18.725 --> 00:01:19.905
<00:01:18.725>and <00:01:18.902>who <00:01:19.079>of <00:01:19.256>you <00:01:19.433>actually <00:01:19.610>has <00:01:19.787>worked

29
00:01:19.905 --> 00:01:22.585
<00:01:19.905>with <00:01:20.045>the <00:01:20.185>rest <00:01:20.325>API <00:01:20.465>in <00:01:20.605>the <00:01:20.745>last <00:01:20.885>six <00:01:21.025>to <00:01:21.165>12 <00:01:21.305>months?

30
00:01:23.735 --> 00:01:25.825
<00:01:23.735>Yeah, <00:01:24.085>so <00:01:24.435>basically <00:01:24.785>almost <00:01:25.135>everybody,

31
00:01:26.205 --> 00:01:28.185
<00:01:26.205>and <00:01:26.360>this <00:01:26.516>is <00:01:26.671>exactly <00:01:26.827>why <00:01:26.982>I <00:01:27.138>wanna <00:01:27.293>talk <00:01:27.449>about <00:01:27.605>rest.

32
00:01:30.175 --> 00:01:33.065
<00:01:30.175>REST <00:01:30.350>is <00:01:30.524>the <00:01:30.700>de <00:01:30.875>facto <00:01:31.050>standard <00:01:31.225>for <00:01:31.399>APIs <00:01:31.575>nowadays.

33
00:01:33.205 --> 00:01:35.625
<00:01:33.205>It <00:01:33.345>used <00:01:33.485>to <00:01:33.625>be <00:01:33.765>soap. <00:01:33.905>There's <00:01:34.045>a <00:01:34.185>lot <00:01:34.325>of <00:01:34.465>different, <00:01:34.605>uh,

34
00:01:35.705 --> 00:01:37.345
<00:01:35.705>API <00:01:36.171>protocols <00:01:36.638>and <00:01:37.105>technologies,

35
00:01:37.565 --> 00:01:39.985
<00:01:37.565>but <00:01:37.798>basically <00:01:38.031>every <00:01:38.265>one <00:01:38.498>of <00:01:38.731>us <00:01:38.965>works

36
00:01:40.015 --> 00:01:42.105
<00:01:40.015>with <00:01:40.215>rest <00:01:40.415>in <00:01:40.615>a, <00:01:40.815>on <00:01:41.015>a <00:01:41.215>day-to-day <00:01:41.415>basis.

37
00:01:43.635 --> 00:01:46.955
<00:01:43.634>Everyone <00:01:43.835>uses <00:01:44.035>it. <00:01:44.234>And <00:01:44.434>while <00:01:44.634>it <00:01:44.835>still <00:01:45.035>works,

38
00:01:47.705 --> 00:01:48.875
<00:01:47.705>it's <00:01:47.968>actually <00:01:48.231>funny <00:01:48.494>to <00:01:48.758>see

39
00:01:48.875 --> 00:01:51.275
<00:01:48.875>that <00:01:49.030>rest <00:01:49.186>was <00:01:49.341>invented <00:01:49.497>at <00:01:49.652>the <00:01:49.808>same <00:01:49.963>time <00:01:50.119>that, <00:01:50.275>uh,

40
00:01:51.485 --> 00:01:53.755
<00:01:51.485>Nokia <00:01:51.835>33 <00:01:52.185>10 <00:01:52.535>was <00:01:52.885>invented.

41
00:01:55.135 --> 00:01:58.915
<00:01:55.134>Um, <00:01:55.251>so <00:01:55.368>it's <00:01:55.484>actually <00:01:55.601>crazy <00:01:55.718>to <00:01:55.835>see <00:01:55.951>that <00:01:56.068>in <00:01:56.184>a <00:01:56.301>time <00:01:56.418>like <00:01:56.535>this

42
00:01:58.965 --> 00:02:01.195
<00:01:58.965>where <00:01:59.165>everything <00:01:59.365>is <00:01:59.565>real <00:01:59.765>time, <00:01:59.965>where <00:02:00.165>everything <00:02:00.365>has

43
00:02:01.195 --> 00:02:03.875
<00:02:01.195>to <00:02:01.335>be <00:02:01.475>really <00:02:01.615>up <00:02:01.755>to <00:02:01.895>date, <00:02:02.035>we <00:02:02.175>send <00:02:02.315>huge <00:02:02.455>data <00:02:02.595>around,

44
00:02:04.375 --> 00:02:07.475
<00:02:04.375>we <00:02:04.550>still <00:02:04.725>heavily <00:02:04.900>rely <00:02:05.075>on <00:02:05.250>data <00:02:05.425>that <00:02:05.600>yeah, <00:02:05.775>used

45
00:02:07.475 --> 00:02:09.115
<00:02:07.475>to <00:02:07.630>be <00:02:07.786>from <00:02:07.941>a <00:02:08.097>time <00:02:08.252>where <00:02:08.408>this <00:02:08.563>was <00:02:08.719>the <00:02:08.875>standard.

46
00:02:10.455 --> 00:02:12.715
<00:02:10.455>And <00:02:10.610>while <00:02:10.766>this, <00:02:10.921>this <00:02:11.077>doesn't <00:02:11.232>mean <00:02:11.388>that, <00:02:11.543>that <00:02:11.699>it's <00:02:11.855>bad,

47
00:02:13.475 --> 00:02:16.555
<00:02:13.475>I <00:02:13.582>want <00:02:13.690>to <00:02:13.798>talk <00:02:13.905>to <00:02:14.013>you <00:02:14.121>if <00:02:14.228>there <00:02:14.336>are <00:02:14.444>maybe <00:02:14.551>other <00:02:14.659>ways <00:02:14.767>I <00:02:14.875>want

48
00:02:16.555 --> 00:02:19.835
<00:02:16.555>to <00:02:16.755>start <00:02:16.955>a <00:02:17.155>small <00:02:17.355>brainstorming <00:02:17.555>session <00:02:17.755>thinking <00:02:17.955>about

49
00:02:19.905 --> 00:02:22.155
<00:02:19.905>what <00:02:20.021>we <00:02:20.138>can <00:02:20.255>do <00:02:20.371>or <00:02:20.488>how <00:02:20.605>we <00:02:20.721>could <00:02:20.838>change <00:02:20.955>it <00:02:21.071>in <00:02:21.188>the <00:02:21.305>future.

50
00:02:22.775 --> 00:02:25.195
<00:02:22.775>And <00:02:22.950>I <00:02:23.125>know, <00:02:23.300>of <00:02:23.475>course <00:02:23.650>there's <00:02:23.825>other <00:02:24.000>things, <00:02:24.175>um,

51
00:02:25.335 --> 00:02:26.355
<00:02:25.335>and <00:02:25.518>we <00:02:25.702>will <00:02:25.885>talk <00:02:26.069>about <00:02:26.253>them,

52
00:02:26.695 --> 00:02:28.275
<00:02:26.695>but <00:02:26.870>it's <00:02:27.045>still <00:02:27.220>like <00:02:27.394>good <00:02:27.570>to <00:02:27.745>set <00:02:27.920>the <00:02:28.095>ground.

53
00:02:30.255 --> 00:02:32.595
<00:02:30.255>Um, <00:02:30.410>before <00:02:30.566>we <00:02:30.721>get <00:02:30.877>into <00:02:31.032>it, <00:02:31.188>I <00:02:31.343>just <00:02:31.499>really <00:02:31.655>want

54
00:02:32.595 --> 00:02:36.275
<00:02:32.595>to <00:02:32.770>quickly <00:02:32.945>start <00:02:33.120>with <00:02:33.295>a <00:02:33.470>reminder <00:02:33.645>why <00:02:33.820>rest, <00:02:33.995>uh,

55
00:02:36.375 --> 00:02:38.675
<00:02:36.375>is <00:02:36.655>sometimes <00:02:36.935>a <00:02:37.215>little <00:02:37.495>bit <00:02:37.775>difficult

56
00:02:38.735 --> 00:02:40.235
<00:02:38.735>or <00:02:38.960>why <00:02:39.185>we <00:02:39.410>would <00:02:39.635>want <00:02:39.860>something <00:02:40.085>else.

57
00:02:41.005 --> 00:02:43.435
<00:02:41.005>First <00:02:41.144>of <00:02:41.285>all, <00:02:41.424>we <00:02:41.565>have <00:02:41.704>the <00:02:41.845>over <00:02:41.984>and <00:02:42.125>under <00:02:42.265>fetching <00:02:42.405>problem.

58
00:02:43.825 --> 00:02:45.675
<00:02:43.825>Like <00:02:43.980>this <00:02:44.136>is <00:02:44.291>a, <00:02:44.447>a <00:02:44.602>thing <00:02:44.758>that <00:02:44.913>we <00:02:45.069>typically <00:02:45.225>have.

59
00:02:45.695 --> 00:02:48.155
<00:02:45.695>We <00:02:45.822>either <00:02:45.949>get <00:02:46.076>huge <00:02:46.204>amounts <00:02:46.331>of <00:02:46.458>data <00:02:46.585>and <00:02:46.713>we <00:02:46.840>only <00:02:46.967>need <00:02:47.095>two

60
00:02:48.155 --> 00:02:52.315
<00:02:48.155>or <00:02:48.282>three <00:02:48.409>properties, <00:02:48.536>or <00:02:48.664>we <00:02:48.791>get <00:02:48.918>non <00:02:49.045>data, <00:02:49.173>no <00:02:49.300>data <00:02:49.427>at <00:02:49.555>all,

61
00:02:52.315 --> 00:02:54.315
<00:02:52.315>and <00:02:52.490>we <00:02:52.665>need <00:02:52.840>three <00:02:53.015>or <00:02:53.190>four <00:02:53.365>different <00:02:53.540>API <00:02:53.715>calls

62
00:02:54.315 --> 00:02:55.515
<00:02:54.315>just <00:02:54.531>to <00:02:54.747>get <00:02:54.963>whatever <00:02:55.179>we <00:02:55.394>want.

63
00:02:56.855 --> 00:02:58.755
<00:02:56.855>Second <00:02:57.054>of <00:02:57.255>all, <00:02:57.454>we <00:02:57.655>have <00:02:57.855>an <00:02:58.054>undefined <00:02:58.255>structure,

64
00:02:59.075 --> 00:03:01.085
<00:02:59.075>like <00:02:59.250>it's <00:02:59.424>really <00:02:59.600>hard <00:02:59.774>to <00:02:59.950>tell <00:03:00.125>what <00:03:00.299>is <00:03:00.475>there.

65
00:03:01.185 --> 00:03:03.805
<00:03:01.185>Of <00:03:01.301>course, <00:03:01.418>I <00:03:01.535>can <00:03:01.651>talk <00:03:01.768>to <00:03:01.885>my <00:03:02.001>backend <00:03:02.118>guy <00:03:02.235>or <00:03:02.351>my <00:03:02.468>frontend <00:03:02.585>guy

66
00:03:03.825 --> 00:03:06.085
<00:03:03.825>or <00:03:04.024>my <00:03:04.225>service <00:03:04.424>guy <00:03:04.625>and <00:03:04.825>discuss <00:03:05.024>these <00:03:05.225>things,

67
00:03:06.085 --> 00:03:07.845
<00:03:06.085>but <00:03:06.285>it <00:03:06.485>will <00:03:06.685>still <00:03:06.885>be, <00:03:07.085>it <00:03:07.285>could <00:03:07.485>change

68
00:03:07.845 --> 00:03:10.085
<00:03:07.845>and <00:03:08.045>then <00:03:08.245>it's <00:03:08.445>a <00:03:08.645>huge <00:03:08.845>hassle <00:03:09.045>to <00:03:09.245>synchronize.

69
00:03:11.555 --> 00:03:13.045
<00:03:11.555>There's <00:03:11.890>also <00:03:12.225>the <00:03:12.560>request <00:03:12.896>overhead.

70
00:03:13.195 --> 00:03:15.685
<00:03:13.195>Like <00:03:13.311>I <00:03:13.428>send <00:03:13.545>a <00:03:13.661>lot <00:03:13.778>of <00:03:13.894>headers, <00:03:14.011>I <00:03:14.128>send <00:03:14.245>a <00:03:14.361>lot <00:03:14.478>of <00:03:14.595>data

71
00:03:15.705 --> 00:03:17.445
<00:03:15.705>for <00:03:15.938>every <00:03:16.171>single <00:03:16.405>request <00:03:16.638>that <00:03:16.871>I <00:03:17.105>do,

72
00:03:17.545 --> 00:03:20.765
<00:03:17.545>and <00:03:17.672>it <00:03:17.799>just <00:03:17.926>takes <00:03:18.054>a <00:03:18.181>lot <00:03:18.308>of <00:03:18.435>data <00:03:18.563>to <00:03:18.690>get <00:03:18.817>small <00:03:18.945>bites

73
00:03:20.765 --> 00:03:21.845
<00:03:20.765>of <00:03:21.251>re <00:03:21.737>responses.

74
00:03:23.185 --> 00:03:25.925
<00:03:23.185>And <00:03:23.325>of <00:03:23.465>course <00:03:23.605>one <00:03:23.745>of <00:03:23.885>the <00:03:24.025>biggest <00:03:24.165>issues <00:03:24.305>nowadays <00:03:24.445>is <00:03:24.585>the

75
00:03:25.925 --> 00:03:27.045
<00:03:25.925>real <00:03:26.429>time <00:03:26.933>problem.

76
00:03:27.275 --> 00:03:30.285
<00:03:27.275>Basically <00:03:27.450>almost <00:03:27.625>everything <00:03:27.800>has <00:03:27.975>to <00:03:28.150>be <00:03:28.325>real <00:03:28.500>time, <00:03:28.675>uh,

77
00:03:30.565 --> 00:03:32.765
<00:03:30.565>nowadays <00:03:30.798>and <00:03:31.031>with <00:03:31.265>requests <00:03:31.498>I <00:03:31.731>can <00:03:31.965>pull

78
00:03:32.785 --> 00:03:34.525
<00:03:32.785>and <00:03:33.018>I <00:03:33.251>can <00:03:33.484>work <00:03:33.718>with <00:03:33.951>other <00:03:34.185>technologies,

79
00:03:34.985 --> 00:03:36.565
<00:03:34.985>but <00:03:35.218>it <00:03:35.451>still <00:03:35.685>doesn't <00:03:35.918>solve <00:03:36.151>the <00:03:36.385>problem

80
00:03:36.595 --> 00:03:39.285
<00:03:36.595>that <00:03:37.061>there <00:03:37.528>is <00:03:37.995>documentation.

81
00:03:39.765 --> 00:03:42.845
<00:03:39.765>I <00:03:39.940>think <00:03:40.114>everyone <00:03:40.290>here <00:03:40.464>kind <00:03:40.640>of <00:03:40.815>knows <00:03:40.989>like <00:03:41.165>one

82
00:03:42.845 --> 00:03:47.085
<00:03:42.845>of <00:03:42.972>the <00:03:43.099>other <00:03:43.226>bad <00:03:43.354>documented <00:03:43.481>rest <00:03:43.608>API <00:03:43.735>and <00:03:43.863>there's <00:03:43.990>a <00:03:44.117>lot <00:03:44.245>more.

83
00:03:48.345 --> 00:03:50.005
<00:03:48.345>So <00:03:48.500>before <00:03:48.656>I <00:03:48.811>go <00:03:48.967>into <00:03:49.122>this, <00:03:49.278>I <00:03:49.433>wanted <00:03:49.589>to <00:03:49.745>start

84
00:03:50.005 --> 00:03:52.085
<00:03:50.005>with <00:03:50.144>a <00:03:50.285>small <00:03:50.424>disclaimer <00:03:50.565>just <00:03:50.704>to <00:03:50.845>be <00:03:50.984>on <00:03:51.125>the <00:03:51.265>safe <00:03:51.405>side.

85
00:03:52.905 --> 00:03:55.125
<00:03:52.905>So, <00:03:53.138>uh, <00:03:53.371>I <00:03:53.605>wanna <00:03:53.838>talk <00:03:54.071>about <00:03:54.305>rest

86
00:03:55.345 --> 00:03:58.965
<00:03:55.345>or <00:03:55.472>API, <00:03:55.599>I <00:03:55.726>kind <00:03:55.854>of <00:03:55.981>mean <00:03:56.108>APIs, <00:03:56.235>that <00:03:56.363>could <00:03:56.490>be <00:03:56.617>an <00:03:56.745>alternative

87
00:03:58.965 --> 00:04:00.085
<00:03:58.965>or <00:03:59.301>replacement <00:03:59.637>for <00:03:59.973>rest.

88
00:04:00.745 --> 00:04:02.565
<00:04:00.745>So <00:04:00.945>I <00:04:01.145>don't <00:04:01.345>mean, <00:04:01.545>you <00:04:01.745>know, <00:04:01.945>an <00:04:02.145>API

89
00:04:02.565 --> 00:04:03.965
<00:04:02.565>to <00:04:02.775>a <00:04:02.985>hardware <00:04:03.195>or <00:04:03.405>something <00:04:03.615>like <00:04:03.825>this.

90
00:04:04.045 --> 00:04:05.245
<00:04:04.045>I <00:04:04.315>don't <00:04:04.585>mean <00:04:04.855>complex, <00:04:05.125>uh,

91
00:04:05.245 --> 00:04:06.965
<00:04:05.245>native <00:04:05.525>SDKs <00:04:05.805>or <00:04:06.085>something <00:04:06.365>like <00:04:06.645>this.

92
00:04:07.405 --> 00:04:09.805
<00:04:07.405>I <00:04:07.560>really <00:04:07.716>mean <00:04:07.871>like <00:04:08.027>what <00:04:08.182>we <00:04:08.338>use <00:04:08.493>rest <00:04:08.649>usually <00:04:08.805>for.

93
00:04:10.985 --> 00:04:14.045
<00:04:10.985>The <00:04:11.125>next <00:04:11.265>thing <00:04:11.405>is <00:04:11.545>when <00:04:11.685>I <00:04:11.825>talk <00:04:11.965>about <00:04:12.105>API <00:04:12.245>protocols, <00:04:12.385>platforms

94
00:04:14.045 --> 00:04:17.605
<00:04:14.045>and <00:04:14.200>frameworks, <00:04:14.356>you <00:04:14.511>know, <00:04:14.667>I'm <00:04:14.822>here, <00:04:14.978>it's <00:04:15.133>a <00:04:15.289>little <00:04:15.445>stressful.

95
00:04:17.765 --> 00:04:19.925
<00:04:17.765>I <00:04:17.998>might <00:04:18.231>confuse <00:04:18.464>these <00:04:18.698>terms. <00:04:18.931>Forgive <00:04:19.164>me.

96
00:04:20.125 --> 00:04:21.845
<00:04:20.125>I <00:04:20.475>usually <00:04:20.825>mean <00:04:21.175>API <00:04:21.524>technologies.

97
00:04:22.265 --> 00:04:24.725
<00:04:22.265>And, <00:04:22.440>um, <00:04:22.615>this <00:04:22.789>is <00:04:22.965>basically <00:04:23.140>what <00:04:23.315>I'm <00:04:23.490>talking <00:04:23.664>about

98
00:04:24.725 --> 00:04:26.245
<00:04:24.725>because <00:04:24.998>not <00:04:25.272>everything <00:04:25.545>is <00:04:25.819>a <00:04:26.093>protocol.

99
00:04:26.305 --> 00:04:28.205
<00:04:26.305>Not <00:04:26.460>everything <00:04:26.616>is <00:04:26.771>a <00:04:26.927>platform, <00:04:27.082>not <00:04:27.238>everything <00:04:27.393>is <00:04:27.549>a <00:04:27.705>framework.

100
00:04:30.175 --> 00:04:32.365
<00:04:30.175>There <00:04:30.350>is <00:04:30.525>a <00:04:30.700>lot <00:04:30.875>of <00:04:31.050>API <00:04:31.225>technologies <00:04:31.400>out <00:04:31.575>there.

101
00:04:32.525 --> 00:04:34.565
<00:04:32.525>I <00:04:32.700>will <00:04:32.875>not <00:04:33.049>mention <00:04:33.224>every <00:04:33.400>single <00:04:33.575>one <00:04:33.750>of <00:04:33.924>them.

102
00:04:34.725 --> 00:04:37.165
<00:04:34.725>I <00:04:34.900>know <00:04:35.075>there's <00:04:35.250>this <00:04:35.425>very <00:04:35.600>specific, <00:04:35.775>very, <00:04:35.950>very <00:04:36.125>cool

103
00:04:37.165 --> 00:04:38.485
<00:04:37.165>and <00:04:37.363>awesome <00:04:37.561>one <00:04:37.759>that <00:04:37.957>I <00:04:38.155>didn't <00:04:38.353>mention,

104
00:04:38.785 --> 00:04:40.845
<00:04:38.784>but <00:04:38.940>there's <00:04:39.096>just <00:04:39.251>no <00:04:39.407>time <00:04:39.562>for <00:04:39.718>it <00:04:39.873>in <00:04:40.029>25 <00:04:40.184>minutes.

105
00:04:42.345 --> 00:04:45.365
<00:04:42.345>Um, <00:04:42.445>and <00:04:42.545>when <00:04:42.645>I <00:04:42.745>mean <00:04:42.845>a <00:04:42.945>p <00:04:43.045>of <00:04:43.145>the <00:04:43.245>future, <00:04:43.345>I <00:04:43.445>don't <00:04:43.545>mean <00:04:43.645>the <00:04:43.745>API

106
00:04:45.385 --> 00:04:46.445
<00:04:45.385>for <00:04:45.575>the <00:04:45.766>next <00:04:45.957>a <00:04:46.148>hundred <00:04:46.339>years,

107
00:04:46.705 --> 00:04:48.805
<00:04:46.705>but <00:04:46.832>I <00:04:46.959>mean <00:04:47.086>the <00:04:47.214>one <00:04:47.341>for <00:04:47.468>the <00:04:47.595>next <00:04:47.723>five <00:04:47.850>to <00:04:47.977>10 <00:04:48.104>years

108
00:04:48.805 --> 00:04:50.285
<00:04:48.805>because <00:04:49.138>as <00:04:49.471>we <00:04:49.804>all <00:04:50.136>know,

109
00:04:50.305 --> 00:04:52.045
<00:04:50.305>things <00:04:50.585>are <00:04:50.865>changing <00:04:51.145>rapidly <00:04:51.425>right <00:04:51.705>now

110
00:04:52.185 --> 00:04:53.885
<00:04:52.185>and <00:04:52.465>it's <00:04:52.745>really, <00:04:53.025>really <00:04:53.305>hard <00:04:53.585>to

111
00:04:54.955 --> 00:04:57.285
<00:04:54.955>basically <00:04:55.155>define <00:04:55.354>what's <00:04:55.555>coming <00:04:55.755>up <00:04:55.955>in <00:04:56.155>20 <00:04:56.354>years

112
00:04:57.285 --> 00:05:00.525
<00:04:57.284>because <00:04:57.440>as <00:04:57.596>we <00:04:57.751>all <00:04:57.907>know, <00:04:58.062>we <00:04:58.218>might <00:04:58.373>either <00:04:58.529>be <00:04:58.684>enslaved

113
00:05:00.585 --> 00:05:02.445
<00:05:00.585>by <00:05:00.935>robots <00:05:01.284>or <00:05:01.635>we, <00:05:01.984>uh,

114
00:05:02.445 --> 00:05:04.325
<00:05:02.445>just <00:05:02.600>lie <00:05:02.756>on <00:05:02.911>the <00:05:03.067>beach <00:05:03.222>and <00:05:03.378>eat <00:05:03.533>fruit <00:05:03.689>all <00:05:03.844>day.

115
00:05:05.505 --> 00:05:07.405
<00:05:05.505>And <00:05:05.705>the <00:05:05.905>last <00:05:06.105>thing <00:05:06.305>is <00:05:06.505>this <00:05:06.705>whole <00:05:06.905>thing

116
00:05:07.405 --> 00:05:08.525
<00:05:07.405>is <00:05:07.741>a <00:05:08.077>subjective <00:05:08.412>opinion.

117
00:05:08.785 --> 00:05:10.845
<00:05:08.785>Um, <00:05:08.940>uh, <00:05:09.096>you <00:05:09.251>know, <00:05:09.407>this <00:05:09.562>is <00:05:09.718>a <00:05:09.873>very <00:05:10.029>opinionated <00:05:10.185>topic.

118
00:05:11.085 --> 00:05:14.525
<00:05:11.085>I <00:05:11.212>know <00:05:11.339>there's <00:05:11.466>been, <00:05:11.594>uh, <00:05:11.721>war <00:05:11.848>fought <00:05:11.975>over <00:05:12.103>on <00:05:12.230>Reddit <00:05:12.357>and <00:05:12.484>co.

119
00:05:14.945 --> 00:05:17.125
<00:05:14.945>Um, <00:05:15.100>this <00:05:15.256>is <00:05:15.411>really <00:05:15.567>just <00:05:15.722>to <00:05:15.878>try <00:05:16.033>to <00:05:16.189>find <00:05:16.344>out

120
00:05:17.125 --> 00:05:18.845
<00:05:17.125>what <00:05:17.325>API <00:05:17.525>would <00:05:17.725>I <00:05:17.925>like <00:05:18.125>for <00:05:18.325>the <00:05:18.525>future.

121
00:05:20.865 --> 00:05:23.085
<00:05:20.865>So, <00:05:21.065>uh, <00:05:21.265>this <00:05:21.465>is <00:05:21.665>our <00:05:21.865>plan <00:05:22.065>for <00:05:22.265>today.

122
00:05:23.085 --> 00:05:25.205
<00:05:23.085>We'll <00:05:23.260>take <00:05:23.435>a <00:05:23.609>look <00:05:23.784>at <00:05:23.960>some <00:05:24.135>available <00:05:24.310>alternatives <00:05:24.484>already.

123
00:05:25.465 --> 00:05:27.845
<00:05:25.465>We <00:05:25.640>will <00:05:25.815>take <00:05:25.989>some <00:05:26.164>of <00:05:26.340>the <00:05:26.515>requirements <00:05:26.690>they <00:05:26.864>have

124
00:05:27.985 --> 00:05:29.485
<00:05:27.985>and <00:05:28.660>analyze <00:05:29.335>them,

125
00:05:29.985 --> 00:05:33.365
<00:05:29.985>and <00:05:30.101>in <00:05:30.218>the <00:05:30.335>end, <00:05:30.451>we'll <00:05:30.568>try <00:05:30.685>to <00:05:30.801>make <00:05:30.918>a, <00:05:31.035>a <00:05:31.151>future <00:05:31.268>API <00:05:31.385>wishlist

126
00:05:33.425 --> 00:05:35.525
<00:05:33.425>how <00:05:33.552>we <00:05:33.679>would <00:05:33.806>like <00:05:33.934>the <00:05:34.061>a <00:05:34.188>i <00:05:34.315>of <00:05:34.443>the <00:05:34.570>future <00:05:34.697>to <00:05:34.825>be.

127
00:05:37.185 --> 00:05:39.845
<00:05:37.185>Before <00:05:37.360>I <00:05:37.535>continue, <00:05:37.710>just <00:05:37.885>very <00:05:38.060>quick <00:05:38.235>intro <00:05:38.410>to <00:05:38.585>myself.

128
00:05:39.905 --> 00:05:42.005
<00:05:39.905>I'm <00:05:40.138>Simon <00:05:40.371>Auer, <00:05:40.604>I <00:05:40.838>work <00:05:41.071>at <00:05:41.304>marketably.

129
00:05:42.185 --> 00:05:44.605
<00:05:42.185>Um, <00:05:42.385>I <00:05:42.585>co-organized <00:05:42.785>the <00:05:42.985>flood <00:05:43.185>of <00:05:43.385>Yna <00:05:43.585>Meetup.

130
00:05:44.985 --> 00:05:47.605
<00:05:44.985>Um, <00:05:45.125>I've <00:05:45.265>been <00:05:45.405>a <00:05:45.545>software <00:05:45.685>developer <00:05:45.825>for <00:05:45.965>a <00:05:46.105>very <00:05:46.245>long <00:05:46.385>time,

131
00:05:48.265 --> 00:05:49.765
<00:05:48.265>and <00:05:48.602>yeah, <00:05:48.940>here's <00:05:49.277>my <00:05:49.615>socials.

132
00:05:51.915 --> 00:05:54.325
<00:05:51.915>Perfect. <00:05:52.148>Let's <00:05:52.381>start <00:05:52.615>with <00:05:52.848>some <00:05:53.081>API <00:05:53.315>basics.

133
00:05:54.365 --> 00:05:56.525
<00:05:54.365>I <00:05:54.565>wanna <00:05:54.765>make <00:05:54.965>this, <00:05:55.165>uh, <00:05:55.365>very <00:05:55.565>brief, <00:05:55.765>uh,

134
00:05:56.525 --> 00:05:58.605
<00:05:56.525>but <00:05:56.680>I, <00:05:56.836>I <00:05:56.991>still <00:05:57.147>think <00:05:57.302>it's <00:05:57.458>something <00:05:57.613>we <00:05:57.769>should <00:05:57.924>cover.

135
00:05:59.065 --> 00:06:01.845
<00:05:59.065>So <00:05:59.220>basically <00:05:59.376>when <00:05:59.531>we <00:05:59.687>talk <00:05:59.842>about <00:05:59.998>APIs, <00:06:00.153>there's <00:06:00.309>three <00:06:00.465>things

136
00:06:01.845 --> 00:06:03.005
<00:06:01.845>that <00:06:02.019>I <00:06:02.193>have <00:06:02.367>to <00:06:02.541>keep <00:06:02.715>in <00:06:02.889>mind.

137
00:06:03.305 --> 00:06:07.205
<00:06:03.305>The <00:06:03.460>protocol, <00:06:03.616>which <00:06:03.771>means <00:06:03.927>basically <00:06:04.082>how <00:06:04.238>on <00:06:04.393>what <00:06:04.549>level, <00:06:04.705>uh,

138
00:06:07.265 --> 00:06:08.365
<00:06:07.265>the <00:06:07.760>things <00:06:08.255>communicate.

139
00:06:09.315 --> 00:06:12.565
<00:06:09.315>There's, <00:06:09.594>uh, <00:06:09.875>communication, <00:06:10.155>how <00:06:10.435>my <00:06:10.715>API,

140
00:06:12.665 --> 00:06:14.885
<00:06:12.665>my <00:06:12.945>servers <00:06:13.225>on <00:06:13.505>my <00:06:13.785>client <00:06:14.065>communicates.

141
00:06:15.465 --> 00:06:17.805
<00:06:15.465>Um, <00:06:15.664>there's <00:06:15.864>different <00:06:16.065>ways <00:06:16.265>like <00:06:16.465>a <00:06:16.664>request <00:06:16.864>response,

142
00:06:17.805 --> 00:06:19.205
<00:06:17.805>event <00:06:18.057>driven, <00:06:18.309>streaming <00:06:18.561>and <00:06:18.813>so <00:06:19.065>on.

143
00:06:19.745 --> 00:06:21.565
<00:06:19.745>And <00:06:20.025>of <00:06:20.305>course <00:06:20.585>there's <00:06:20.865>always <00:06:21.145>features

144
00:06:21.565 --> 00:06:23.725
<00:06:21.565>that <00:06:21.720>I <00:06:21.876>would <00:06:22.031>really <00:06:22.187>like <00:06:22.342>to <00:06:22.498>have <00:06:22.653>in <00:06:22.809>my <00:06:22.965>API.

145
00:06:24.015 --> 00:06:25.245
<00:06:24.015>We'll <00:06:24.199>talk <00:06:24.384>about <00:06:24.568>them <00:06:24.753>in <00:06:24.937>a <00:06:25.122>second.

146
00:06:29.125 --> 00:06:31.695
<00:06:29.125>Perfect. <00:06:29.280>So <00:06:29.436>let's <00:06:29.591>take <00:06:29.747>a <00:06:29.902>look <00:06:30.058>at <00:06:30.213>the <00:06:30.369>current <00:06:30.525>solutions

147
00:06:31.695 --> 00:06:33.255
<00:06:31.695>because <00:06:31.895>I <00:06:32.094>think <00:06:32.295>that's <00:06:32.495>where <00:06:32.695>we <00:06:32.895>all <00:06:33.094>started,

148
00:06:33.475 --> 00:06:36.775
<00:06:33.475>and <00:06:33.630>I <00:06:33.786>will <00:06:33.941>take <00:06:34.097>some <00:06:34.252>more <00:06:34.408>well-known <00:06:34.563>solutions <00:06:34.719>on <00:06:34.875>purpose

149
00:06:37.235 --> 00:06:39.735
<00:06:37.235>to <00:06:37.375>make <00:06:37.515>sure <00:06:37.655>that <00:06:37.795>we, <00:06:37.935>that <00:06:38.075>everyone <00:06:38.215>can <00:06:38.355>follow <00:06:38.495>along <00:06:38.635>easily.

150
00:06:41.155 --> 00:06:42.775
<00:06:41.155>Um, <00:06:41.354>before <00:06:41.554>we <00:06:41.755>do <00:06:41.955>that, <00:06:42.155>just <00:06:42.354>a <00:06:42.554>very,

151
00:06:42.775 --> 00:06:44.135
<00:06:42.775>very <00:06:43.387>small <00:06:43.998>distinguishing

152
00:06:44.135 --> 00:06:46.535
<00:06:44.135>between <00:06:44.335>the <00:06:44.534>different <00:06:44.735>categories, <00:06:44.935>um, <00:06:45.135>that <00:06:45.335>we <00:06:45.534>have.

153
00:06:47.255 --> 00:06:49.335
<00:06:47.255>I <00:06:47.488>group <00:06:47.721>them <00:06:47.955>into <00:06:48.188>resource <00:06:48.421>oriented <00:06:48.655>ones,

154
00:06:49.335 --> 00:06:51.135
<00:06:49.335>basically <00:06:49.614>like <00:06:49.895>rest, <00:06:50.174>soap, <00:06:50.455>graph <00:06:50.734>kill

155
00:06:51.155 --> 00:06:53.895
<00:06:51.155>and <00:06:51.330>so <00:06:51.505>on <00:06:51.679>where <00:06:51.854>I <00:06:52.030>actually <00:06:52.205>query <00:06:52.380>a <00:06:52.554>specific

156
00:06:54.035 --> 00:06:55.535
<00:06:54.034>entity <00:06:54.304>and <00:06:54.575>I <00:06:54.844>get <00:06:55.114>the <00:06:55.385>result.

157
00:06:55.635 --> 00:06:58.095
<00:06:55.635>So <00:06:55.810>for <00:06:55.985>example, <00:06:56.159>I <00:06:56.335>say <00:06:56.510>give <00:06:56.685>me <00:06:56.860>a <00:06:57.034>user

158
00:06:58.315 --> 00:06:59.655
<00:06:58.315>and <00:06:58.516>I <00:06:58.717>get <00:06:58.918>the <00:06:59.119>user <00:06:59.320>data <00:06:59.520>back.

159
00:07:01.515 --> 00:07:04.535
<00:07:01.515>The <00:07:01.690>next <00:07:01.865>one <00:07:02.039>is <00:07:02.215>procedure <00:07:02.390>oriented, <00:07:02.565>like <00:07:02.740>RPC <00:07:02.914>stands

160
00:07:04.535 --> 00:07:05.695
<00:07:04.535>for <00:07:04.883>remote <00:07:05.231>procedure <00:07:05.579>call.

161
00:07:05.795 --> 00:07:06.935
<00:07:05.795>Um, <00:07:06.000>you've <00:07:06.205>probably <00:07:06.410>heard <00:07:06.615>that <00:07:06.821>already.

162
00:07:07.435 --> 00:07:10.375
<00:07:07.435>The <00:07:07.551>the <00:07:07.668>idea <00:07:07.785>is <00:07:07.901>here <00:07:08.018>not <00:07:08.135>so <00:07:08.251>much <00:07:08.368>to <00:07:08.485>query <00:07:08.601>a <00:07:08.718>certain <00:07:08.835>entity,

163
00:07:10.795 --> 00:07:14.415
<00:07:10.795>but <00:07:10.995>to <00:07:11.195>really, <00:07:11.395>uh, <00:07:11.595>call, <00:07:11.795>um, <00:07:11.995>a <00:07:12.195>function,

164
00:07:14.535 --> 00:07:17.175
<00:07:14.535>a <00:07:14.768>method <00:07:15.001>on <00:07:15.235>the <00:07:15.468>remote, <00:07:15.701>um, <00:07:15.935>API.

165
00:07:17.675 --> 00:07:19.855
<00:07:17.675>So <00:07:17.830>to <00:07:17.986>really <00:07:18.141>interact <00:07:18.297>with <00:07:18.452>it <00:07:18.608>most <00:07:18.763>of <00:07:18.919>the <00:07:19.075>time,

166
00:07:20.075 --> 00:07:22.015
<00:07:20.075>of <00:07:20.250>course <00:07:20.425>it <00:07:20.599>will <00:07:20.775>still <00:07:20.950>return <00:07:21.125>data <00:07:21.300>to <00:07:21.474>me,

167
00:07:22.315 --> 00:07:23.335
<00:07:22.315>but <00:07:22.621>it's <00:07:22.926>not <00:07:23.233>necessary.

168
00:07:24.875 --> 00:07:26.735
<00:07:24.875>And <00:07:25.002>the <00:07:25.129>third <00:07:25.256>one, <00:07:25.384>this <00:07:25.511>is <00:07:25.638>something <00:07:25.765>I <00:07:25.893>just <00:07:26.020>took <00:07:26.147>a <00:07:26.275>little

169
00:07:26.735 --> 00:07:28.135
<00:07:26.735>bit, <00:07:26.987>uh, <00:07:27.239>for <00:07:27.491>fun <00:07:27.743>in <00:07:27.995>there.

170
00:07:28.315 --> 00:07:29.895
<00:07:28.315>Um, <00:07:28.665>it's <00:07:29.015>server <00:07:29.365>driven <00:07:29.715>UIs.

171
00:07:29.925 --> 00:07:32.175
<00:07:29.925>It's <00:07:30.065>actually <00:07:30.205>like <00:07:30.345>getting, <00:07:30.485>getting <00:07:30.625>a <00:07:30.765>little <00:07:30.905>bit <00:07:31.045>of <00:07:31.185>a <00:07:31.325>post.

172
00:07:32.555 --> 00:07:34.295
<00:07:32.555>The <00:07:32.710>idea <00:07:32.866>here <00:07:33.021>is <00:07:33.177>not <00:07:33.332>so <00:07:33.488>much <00:07:33.643>to <00:07:33.799>send <00:07:33.955>data,

173
00:07:34.355 --> 00:07:37.735
<00:07:34.355>but <00:07:34.495>to <00:07:34.635>really <00:07:34.775>like <00:07:34.915>render <00:07:35.055>API <00:07:35.195>mark <00:07:35.335>down <00:07:35.475>on <00:07:35.615>the <00:07:35.755>server

174
00:07:37.835 --> 00:07:41.055
<00:07:37.835>and <00:07:38.010>send <00:07:38.185>it <00:07:38.359>to <00:07:38.534>the <00:07:38.710>clients, <00:07:38.885>uh, <00:07:39.060>for <00:07:39.234>output.

175
00:07:41.525 --> 00:07:43.695
<00:07:41.525>This <00:07:41.700>one <00:07:41.875>I <00:07:42.049>will <00:07:42.224>honestly <00:07:42.400>ignore <00:07:42.575>a <00:07:42.750>little <00:07:42.924>bit

176
00:07:43.695 --> 00:07:44.855
<00:07:43.695>because <00:07:43.869>it's <00:07:44.043>not <00:07:44.217>what <00:07:44.391>we're <00:07:44.565>looking <00:07:44.739>after.

177
00:07:47.115 --> 00:07:49.615
<00:07:47.115>So <00:07:47.290>perfect. <00:07:47.465>Let's <00:07:47.640>get <00:07:47.815>started <00:07:47.990>with <00:07:48.165>our <00:07:48.340>first <00:07:48.515>one.

178
00:07:49.735 --> 00:07:51.495
<00:07:49.735>I <00:07:50.015>will <00:07:50.295>basically <00:07:50.575>cover <00:07:50.855>these <00:07:51.135>four

179
00:07:51.495 --> 00:07:54.215
<00:07:51.495>and <00:07:51.670>we'll <00:07:51.845>try <00:07:52.020>to <00:07:52.195>steal <00:07:52.370>some <00:07:52.545>of <00:07:52.720>their <00:07:52.895>features

180
00:07:54.275 --> 00:07:56.855
<00:07:54.275>and <00:07:54.430>requirements <00:07:54.586>just <00:07:54.741>to <00:07:54.897>make <00:07:55.052>sure <00:07:55.208>that <00:07:55.363>we <00:07:55.519>cover <00:07:55.674>everything.

181
00:07:58.075 --> 00:07:59.535
<00:07:58.075>Um, <00:07:58.337>rest, <00:07:58.600>as <00:07:58.863>you <00:07:59.126>all <00:07:59.388>know,

182
00:07:59.535 --> 00:08:01.095
<00:07:59.534>is <00:07:59.885>stateless <00:08:00.234>simple <00:08:00.585>and <00:08:00.934>universal.

183
00:08:01.315 --> 00:08:04.415
<00:08:01.315>Um, <00:08:01.490>it's <00:08:01.665>HDB <00:08:01.840>based, <00:08:02.015>so <00:08:02.190>it's <00:08:02.365>pretty <00:08:02.540>easily <00:08:02.715>cashable.

184
00:08:05.035 --> 00:08:06.895
<00:08:05.035>Um, <00:08:05.315>it's <00:08:05.595>super <00:08:05.875>easy <00:08:06.155>to <00:08:06.435>understand,

185
00:08:06.895 --> 00:08:08.815
<00:08:06.895>which <00:08:07.128>is <00:08:07.361>why <00:08:07.594>most <00:08:07.828>people <00:08:08.061>use <00:08:08.294>it.

186
00:08:08.885 --> 00:08:10.975
<00:08:08.885>It's <00:08:09.164>very <00:08:09.445>widely <00:08:09.724>supported, <00:08:10.005>well <00:08:10.284>documented,

187
00:08:11.635 --> 00:08:12.655
<00:08:11.635>and <00:08:11.941>it's <00:08:12.246>crutch <00:08:12.553>friendly

188
00:08:12.675 --> 00:08:15.415
<00:08:12.675>and <00:08:12.955>resource <00:08:13.235>oriented <00:08:13.515>if <00:08:13.795>done <00:08:14.075>right.

189
00:08:15.675 --> 00:08:17.175
<00:08:15.675>Uh, <00:08:15.900>I <00:08:16.125>think <00:08:16.350>we <00:08:16.575>all <00:08:16.800>know <00:08:17.025>that

190
00:08:17.575 --> 00:08:19.695
<00:08:17.575>whenever <00:08:17.750>somebody <00:08:17.925>tells <00:08:18.099>you <00:08:18.275>I <00:08:18.450>have <00:08:18.625>a <00:08:18.800>rest <00:08:18.974>API,

191
00:08:19.915 --> 00:08:21.495
<00:08:19.915>it <00:08:20.148>really <00:08:20.381>means <00:08:20.615>they <00:08:20.848>have <00:08:21.081>some <00:08:21.315>endpoints.

192
00:08:21.555 --> 00:08:24.255
<00:08:21.555>And <00:08:21.730>yeah, <00:08:21.905>it <00:08:22.080>could <00:08:22.255>be <00:08:22.430>anything <00:08:22.605>what <00:08:22.780>you <00:08:22.955>get,

193
00:08:26.355 --> 00:08:27.375
<00:08:26.355>Not <00:08:26.661>to <00:08:26.967>the <00:08:27.273>downsides.

194
00:08:27.595 --> 00:08:29.375
<00:08:27.595>Um, <00:08:27.875>by <00:08:28.155>default <00:08:28.435>it's <00:08:28.715>very <00:08:28.995>basic.

195
00:08:29.635 --> 00:08:30.735
<00:08:29.635>You <00:08:29.882>don't <00:08:30.130>have <00:08:30.377>much <00:08:30.625>functionality.

196
00:08:30.735 --> 00:08:32.455
<00:08:30.735>You <00:08:31.085>don't <00:08:31.435>have <00:08:31.785>pagination <00:08:32.135>protocols,

197
00:08:32.455 --> 00:08:34.615
<00:08:32.455>you <00:08:32.688>don't <00:08:32.921>have <00:08:33.155>any <00:08:33.388>like, <00:08:33.621>uh, <00:08:33.855>conventions

198
00:08:34.675 --> 00:08:37.375
<00:08:34.674>for <00:08:34.875>specific <00:08:35.074>things <00:08:35.275>about <00:08:35.474>like <00:08:35.674>how <00:08:35.875>you <00:08:36.074>want

199
00:08:37.375 --> 00:08:39.615
<00:08:37.375>to <00:08:37.515>further <00:08:37.655>cache <00:08:37.794>it, <00:08:37.934>how <00:08:38.075>you <00:08:38.215>want <00:08:38.355>to <00:08:38.495>structure <00:08:38.635>the <00:08:38.775>data.

200
00:08:40.245 --> 00:08:42.295
<00:08:40.245>There's <00:08:40.445>not <00:08:40.645>much <00:08:40.845>defined. <00:08:41.044>Everybody <00:08:41.245>does <00:08:41.445>it <00:08:41.645>differently.

201
00:08:43.485 --> 00:08:44.775
<00:08:43.485>There's <00:08:43.871>no <00:08:44.259>type <00:08:44.646>safety.

202
00:08:45.075 --> 00:08:47.575
<00:08:45.075>Um, <00:08:45.250>like <00:08:45.425>I <00:08:45.600>think <00:08:45.775>most <00:08:45.950>of <00:08:46.125>us <00:08:46.300>work <00:08:46.475>nowadays

203
00:08:47.575 --> 00:08:48.815
<00:08:47.575>with <00:08:47.947>type <00:08:48.319>safe <00:08:48.691>languages

204
00:08:48.815 --> 00:08:50.775
<00:08:48.815>or <00:08:49.048>at <00:08:49.281>least <00:08:49.515>languages <00:08:49.748>that <00:08:49.981>support <00:08:50.215>types.

205
00:08:51.365 --> 00:08:54.455
<00:08:51.365>It's <00:08:51.492>super <00:08:51.619>nice <00:08:51.746>if <00:08:51.874>my <00:08:52.001>types <00:08:52.128>locally <00:08:52.255>match <00:08:52.383>the <00:08:52.510>types <00:08:52.637>on <00:08:52.765>the

206
00:08:54.495 --> 00:08:57.325
<00:08:54.495>API <00:08:54.775>and <00:08:55.055>the <00:08:55.335>biggest <00:08:55.615>of <00:08:55.895>all.

207
00:08:57.385 --> 00:08:59.205
<00:08:57.385>Uh, <00:08:57.560>like <00:08:57.735>I <00:08:57.910>said, <00:08:58.085>there's <00:08:58.260>no <00:08:58.435>real <00:08:58.610>time <00:08:58.785>support.

208
00:08:59.785 --> 00:09:01.805
<00:08:59.785>Of <00:08:59.985>course, <00:09:00.185>I'm <00:09:00.385>fully <00:09:00.584>aware <00:09:00.785>that <00:09:00.985>there's, <00:09:01.185>uh,

209
00:09:01.805 --> 00:09:03.805
<00:09:01.805>like <00:09:01.944>web <00:09:02.084>sockets <00:09:02.224>and <00:09:02.364>stuff <00:09:02.505>like <00:09:02.645>that <00:09:02.785>that <00:09:02.925>I <00:09:03.064>can <00:09:03.204>use,

210
00:09:03.805 --> 00:09:06.205
<00:09:03.805>but <00:09:03.944>it's <00:09:04.084>not <00:09:04.224>part <00:09:04.364>of <00:09:04.505>the <00:09:04.645>rest, <00:09:04.785>uh, <00:09:04.925>protocol <00:09:05.064>per <00:09:05.204>se.

211
00:09:08.345 --> 00:09:10.725
<00:09:08.345>Um, <00:09:08.578>rest <00:09:08.811>uses <00:09:09.045>HTTP <00:09:09.278>one <00:09:09.511>and <00:09:09.745>two.

212
00:09:10.945 --> 00:09:13.325
<00:09:10.945>Um, <00:09:11.145>usually <00:09:11.345>we <00:09:11.545>use <00:09:11.745>it <00:09:11.945>nowadays <00:09:12.145>with <00:09:12.345>Jason,

213
00:09:13.385 --> 00:09:16.245
<00:09:13.385>but <00:09:13.512>of <00:09:13.639>course <00:09:13.766>you <00:09:13.894>can <00:09:14.021>also <00:09:14.148>use <00:09:14.275>XML <00:09:14.403>and <00:09:14.530>whatever <00:09:14.657>you <00:09:14.785>want.

214
00:09:17.065 --> 00:09:19.445
<00:09:17.065>Uh, <00:09:17.265>for <00:09:17.465>communication, <00:09:17.665>we <00:09:17.865>have <00:09:18.065>stateless <00:09:18.265>request, <00:09:18.465>response,

215
00:09:19.585 --> 00:09:21.965
<00:09:19.585>uh, <00:09:19.760>mode, <00:09:19.935>which <00:09:20.110>means <00:09:20.285>like <00:09:20.460>I <00:09:20.635>send <00:09:20.810>a <00:09:20.985>request,

216
00:09:22.205 --> 00:09:25.565
<00:09:22.205>I <00:09:22.321>say <00:09:22.438>give <00:09:22.555>me <00:09:22.671>a <00:09:22.788>user, <00:09:22.905>and <00:09:23.021>I <00:09:23.138>get <00:09:23.255>the <00:09:23.371>user <00:09:23.488>response <00:09:23.605>back.

217
00:09:25.625 --> 00:09:26.925
<00:09:25.625>And <00:09:25.859>when <00:09:26.093>I <00:09:26.327>send <00:09:26.560>another <00:09:26.795>request,

218
00:09:27.115 --> 00:09:30.445
<00:09:27.115>usually <00:09:27.315>the <00:09:27.515>rest <00:09:27.715>API <00:09:27.915>doesn't <00:09:28.115>know <00:09:28.315>exactly <00:09:28.515>who

219
00:09:30.865 --> 00:09:34.285
<00:09:30.865>or <00:09:31.040>what <00:09:31.215>call <00:09:31.390>I <00:09:31.565>did <00:09:31.740>before <00:09:31.915>that <00:09:32.090>for <00:09:32.265>features.

220
00:09:34.285 --> 00:09:37.045
<00:09:34.285>There's <00:09:34.459>some <00:09:34.635>cool <00:09:34.810>things <00:09:34.985>in <00:09:35.160>rest, <00:09:35.334>uh, <00:09:35.510>like <00:09:35.685>authentication,

221
00:09:37.055 --> 00:09:39.325
<00:09:37.055>which <00:09:37.255>comes <00:09:37.454>basically <00:09:37.655>out <00:09:37.854>of <00:09:38.055>the <00:09:38.255>box, <00:09:38.454>um,

222
00:09:39.465 --> 00:09:40.845
<00:09:39.465>and <00:09:39.879>is <00:09:40.293>easily <00:09:40.707>implementable.

223
00:09:41.505 --> 00:09:44.245
<00:09:41.505>Um, <00:09:41.680>it's <00:09:41.855>super <00:09:42.030>easy <00:09:42.205>to <00:09:42.380>understand. <00:09:42.555>There's <00:09:42.730>HTTP <00:09:42.905>caching.

224
00:09:44.585 --> 00:09:47.325
<00:09:44.585>We <00:09:44.760>have <00:09:44.935>an <00:09:45.110>extensive <00:09:45.285>client <00:09:45.460>ecosystem. <00:09:45.635>This <00:09:45.810>is <00:09:45.985>amazing.

225
00:09:47.685 --> 00:09:50.325
<00:09:47.685>I <00:09:47.840>mean, <00:09:47.996>there's <00:09:48.151>almost <00:09:48.307>no <00:09:48.462>system <00:09:48.618>that <00:09:48.773>doesn't <00:09:48.929>have <00:09:49.084>a

226
00:09:51.005 --> 00:09:53.005
<00:09:51.005>a <00:09:51.132>p <00:09:51.259>client <00:09:51.386>that <00:09:51.514>I <00:09:51.641>can <00:09:51.768>use <00:09:51.895>to <00:09:52.023>make <00:09:52.150>my <00:09:52.277>rest <00:09:52.405>calls.

227
00:09:53.555 --> 00:09:56.005
<00:09:53.555>There's <00:09:53.788>documentation <00:09:54.021>with <00:09:54.255>open <00:09:54.488>my <00:09:54.721>eyes, <00:09:54.954>swagger,

228
00:09:56.025 --> 00:09:57.085
<00:09:56.025>ui, <00:09:56.184>and <00:09:56.343>so <00:09:56.502>on <00:09:56.661>and <00:09:56.820>so <00:09:56.979>on.

229
00:09:57.865 --> 00:10:01.045
<00:09:57.865>And <00:09:58.005>we <00:09:58.145>have <00:09:58.285>a <00:09:58.425>versioning <00:09:58.565>workaround <00:09:58.705>that <00:09:58.845>kind <00:09:58.985>of <00:09:59.125>works <00:09:59.265>like,

230
00:10:01.045 --> 00:10:04.445
<00:10:01.045>you <00:10:01.138>know, <00:10:01.231>in <00:10:01.324>ULI <00:10:01.418>can <00:10:01.511>add <00:10:01.604>V <00:10:01.698>one, <00:10:01.791>V <00:10:01.885>two, <00:10:01.978>and <00:10:02.071>so <00:10:02.165>on <00:10:02.258>and <00:10:02.351>so <00:10:02.444>on.

231
00:10:04.905 --> 00:10:06.445
<00:10:04.905>Not <00:10:05.078>ideal, <00:10:05.251>but <00:10:05.424>it <00:10:05.598>works <00:10:05.771>most <00:10:05.944>of <00:10:06.117>the <00:10:06.291>time.

232
00:10:07.545 --> 00:10:08.965
<00:10:07.545>And <00:10:07.864>file <00:10:08.184>upload <00:10:08.503>is <00:10:08.823>possible.

233
00:10:09.315 --> 00:10:12.325
<00:10:09.315>This <00:10:09.490>is <00:10:09.665>something <00:10:09.840>that <00:10:10.015>nowadays <00:10:10.190>is <00:10:10.365>really, <00:10:10.540>really <00:10:10.715>important

234
00:10:12.425 --> 00:10:14.045
<00:10:12.425>and <00:10:12.658>that <00:10:12.891>we <00:10:13.125>should <00:10:13.358>definitely <00:10:13.591>take <00:10:13.824>into,

235
00:10:14.145 --> 00:10:15.325
<00:10:14.145>uh, <00:10:14.499>onto <00:10:14.853>our <00:10:15.207>wishlist.

236
00:10:16.585 --> 00:10:19.525
<00:10:16.585>So <00:10:16.725>let's <00:10:16.865>make <00:10:17.005>our <00:10:17.145>small <00:10:17.285>wishlist. <00:10:17.425>I <00:10:17.565>made <00:10:17.705>it <00:10:17.845>very <00:10:17.985>beautiful.

237
00:10:19.865 --> 00:10:21.325
<00:10:19.865>I'm <00:10:20.084>very <00:10:20.303>proud <00:10:20.522>of <00:10:20.741>the <00:10:20.960>design <00:10:21.179>myself.

238
00:10:21.865 --> 00:10:24.565
<00:10:21.865>So <00:10:22.040>yeah, <00:10:22.215>let's <00:10:22.390>add <00:10:22.565>authentication, <00:10:22.740>caching, <00:10:22.915>ease <00:10:23.090>of <00:10:23.265>use,

239
00:10:24.565 --> 00:10:26.245
<00:10:24.565>client <00:10:24.915>ecosystem, <00:10:25.265>and <00:10:25.615>file <00:10:25.965>upload.

240
00:10:26.385 --> 00:10:27.605
<00:10:26.385>And <00:10:26.604>let's <00:10:26.824>jump <00:10:27.043>to <00:10:27.263>Graph <00:10:27.483>kill.

241
00:10:28.225 --> 00:10:30.005
<00:10:28.225>So <00:10:28.365>now <00:10:28.505>I <00:10:28.645>want <00:10:28.785>to <00:10:28.925>take <00:10:29.065>a <00:10:29.205>look <00:10:29.345>at <00:10:29.485>graph <00:10:29.625>Kill.

242
00:10:30.005 --> 00:10:32.165
<00:10:30.005>Most <00:10:30.180>of <00:10:30.355>you <00:10:30.530>probably <00:10:30.705>know <00:10:30.880>it, <00:10:31.055>it <00:10:31.230>was <00:10:31.405>invented

243
00:10:32.225 --> 00:10:34.605
<00:10:32.225>by <00:10:32.380>MEA <00:10:32.536>in <00:10:32.691>an <00:10:32.847>attempt <00:10:33.002>to <00:10:33.158>make <00:10:33.313>a <00:10:33.469>better <00:10:33.625>API.

244
00:10:35.625 --> 00:10:37.805
<00:10:35.625>And <00:10:35.780>to <00:10:35.936>be <00:10:36.091>honest, <00:10:36.247>I'm, <00:10:36.402>I'm <00:10:36.558>a <00:10:36.713>graph <00:10:36.869>curl <00:10:37.025>fan,

245
00:10:37.825 --> 00:10:39.885
<00:10:37.825>so <00:10:37.980>I <00:10:38.136>take <00:10:38.291>back <00:10:38.447>the <00:10:38.602>quotes <00:10:38.758>that <00:10:38.913>I <00:10:39.069>just <00:10:39.225>made.

246
00:10:40.305 --> 00:10:41.925
<00:10:40.305>Um, <00:10:40.538>like <00:10:40.771>it, <00:10:41.005>it <00:10:41.238>works <00:10:41.471>quite <00:10:41.704>well.

247
00:10:41.985 --> 00:10:43.645
<00:10:41.985>Um, <00:10:42.185>but <00:10:42.385>the <00:10:42.585>idea <00:10:42.785>was <00:10:42.985>basically <00:10:43.185>to <00:10:43.385>take

248
00:10:43.995 --> 00:10:46.205
<00:10:43.995>what <00:10:44.228>rest <00:10:44.461>does <00:10:44.695>and <00:10:44.928>make <00:10:45.161>it <00:10:45.395>better.

249
00:10:47.065 --> 00:10:48.365
<00:10:47.065>So <00:10:47.260>this <00:10:47.455>is <00:10:47.650>what <00:10:47.845>it <00:10:48.040>looks <00:10:48.235>like.

250
00:10:48.365 --> 00:10:52.445
<00:10:48.365>Basically, <00:10:48.565>you <00:10:48.765>sent <00:10:48.965>this, <00:10:49.165>um, <00:10:49.365>Jason <00:10:49.565>output, <00:10:49.765>um,

251
00:10:52.745 --> 00:10:55.605
<00:10:52.745>or <00:10:52.945>this <00:10:53.145>Jasons <00:10:53.345>request, <00:10:53.545>um, <00:10:53.745>with <00:10:53.945>the <00:10:54.145>keys

252
00:10:55.605 --> 00:10:58.245
<00:10:55.605>that <00:10:55.760>you <00:10:55.916>actually <00:10:56.071>want, <00:10:56.227>and <00:10:56.382>you <00:10:56.538>will <00:10:56.693>get <00:10:56.849>the <00:10:57.005>response

253
00:10:58.245 --> 00:11:01.125
<00:10:58.245>exactly <00:10:58.400>in <00:10:58.556>the <00:10:58.711>same <00:10:58.867>structure <00:10:59.022>back, <00:10:59.178>uh, <00:10:59.333>with <00:10:59.489>the <00:10:59.645>key,

254
00:11:01.125 --> 00:11:03.205
<00:11:01.125>the <00:11:01.325>values <00:11:01.525>filled <00:11:01.725>out, <00:11:01.925>uh, <00:11:02.125>by <00:11:02.325>the <00:11:02.525>response.

255
00:11:04.665 --> 00:11:07.805
<00:11:04.665>Um, <00:11:04.805>it <00:11:04.944>has <00:11:05.084>strong <00:11:05.224>schema <00:11:05.365>based <00:11:05.505>typing, <00:11:05.645>which <00:11:05.785>is <00:11:05.925>super <00:11:06.064>nice

256
00:11:07.805 --> 00:11:09.165
<00:11:07.805>because <00:11:08.008>you <00:11:08.213>can <00:11:08.416>just <00:11:08.621>build <00:11:08.824>your <00:11:09.029>own

257
00:11:09.165 --> 00:11:10.325
<00:11:09.165>type <00:11:09.425>local <00:11:09.687>types <00:11:09.948>from <00:11:10.209>that.

258
00:11:10.545 --> 00:11:12.285
<00:11:10.545>Um, <00:11:10.824>you <00:11:11.104>have <00:11:11.385>built <00:11:11.665>in <00:11:11.944>introspection,

259
00:11:12.335 --> 00:11:14.765
<00:11:12.335>which <00:11:12.535>means <00:11:12.735>like <00:11:12.935>it <00:11:13.135>will <00:11:13.335>automatically <00:11:13.535>generate <00:11:13.735>the

260
00:11:14.965 --> 00:11:16.325
<00:11:14.965>documentation <00:11:15.169>that <00:11:15.373>is <00:11:15.577>always <00:11:15.781>up <00:11:15.985>to <00:11:16.189>date.

261
00:11:16.865 --> 00:11:18.205
<00:11:16.865>Um, <00:11:17.166>you <00:11:17.468>have <00:11:17.769>flexible <00:11:18.071>querying,

262
00:11:18.205 --> 00:11:20.965
<00:11:18.205>so <00:11:18.360>this <00:11:18.516>under <00:11:18.671>an <00:11:18.827>over <00:11:18.982>fetching <00:11:19.138>topic <00:11:19.293>that <00:11:19.449>we <00:11:19.605>discussed,

263
00:11:20.965 --> 00:11:22.685
<00:11:20.965>you <00:11:21.120>can <00:11:21.276>kind <00:11:21.431>of <00:11:21.587>avoid <00:11:21.742>it <00:11:21.898>most <00:11:22.053>of <00:11:22.209>the <00:11:22.365>time.

264
00:11:23.585 --> 00:11:25.725
<00:11:23.585>Um, <00:11:23.725>so <00:11:23.865>you <00:11:24.005>can <00:11:24.145>just <00:11:24.285>say, <00:11:24.425>I <00:11:24.565>only <00:11:24.705>want <00:11:24.845>the <00:11:24.985>items

265
00:11:25.835 --> 00:11:27.925
<00:11:25.835>with <00:11:25.975>the <00:11:26.115>Titan <00:11:26.255>author, <00:11:26.395>but <00:11:26.535>I <00:11:26.675>don't <00:11:26.815>care <00:11:26.955>about <00:11:27.095>the <00:11:27.235>name.

266
00:11:27.925 --> 00:11:31.285
<00:11:27.925>It's <00:11:28.125>not <00:11:28.324>a <00:11:28.525>problem. <00:11:28.724>Um, <00:11:28.925>there's <00:11:29.125>client <00:11:29.324>libraries

267
00:11:31.285 --> 00:11:33.685
<00:11:31.285>and <00:11:31.440>caching, <00:11:31.596>um, <00:11:31.751>in <00:11:31.907>a <00:11:32.062>lot <00:11:32.218>of <00:11:32.373>the, <00:11:32.529>the <00:11:32.685>systems,

268
00:11:33.755 --> 00:11:34.925
<00:11:33.755>like <00:11:34.106>it's <00:11:34.457>really <00:11:34.808>widespread

269
00:11:35.265 --> 00:11:37.445
<00:11:35.265>for <00:11:35.420>almost <00:11:35.576>any <00:11:35.731>text <00:11:35.887>stack <00:11:36.042>I've <00:11:36.198>ever, <00:11:36.353>I've <00:11:36.509>ever <00:11:36.665>needed.

270
00:11:37.445 --> 00:11:41.125
<00:11:37.445>Like <00:11:37.645>I've <00:11:37.845>found <00:11:38.045>something. <00:11:38.245>Um, <00:11:38.445>it's <00:11:38.645>parts <00:11:38.845>authentication,

271
00:11:41.225 --> 00:11:42.605
<00:11:41.225>it <00:11:41.535>has <00:11:41.846>a <00:11:42.156>pagination <00:11:42.467>standard,

272
00:11:42.785 --> 00:11:45.325
<00:11:42.785>and <00:11:43.018>of <00:11:43.251>course <00:11:43.485>there's <00:11:43.718>downsides <00:11:43.951>like <00:11:44.185>complexity

273
00:11:45.325 --> 00:11:48.365
<00:11:45.325>and <00:11:45.480>the <00:11:45.636>learning <00:11:45.791>curve <00:11:45.947>because <00:11:46.102>as <00:11:46.258>simple <00:11:46.413>as <00:11:46.569>this, <00:11:46.725>uh,

274
00:11:48.365 --> 00:11:51.125
<00:11:48.365>Jason <00:11:48.540>request <00:11:48.715>seems, <00:11:48.890>there's <00:11:49.065>still <00:11:49.240>a <00:11:49.415>lot <00:11:49.590>of <00:11:49.765>terms.

275
00:11:51.125 --> 00:11:53.460
<00:11:51.125>There's <00:11:51.265>a <00:11:51.405>lot <00:11:51.545>of <00:11:51.685>systems <00:11:51.825>you <00:11:51.965>need <00:11:52.105>to <00:11:52.245>learn <00:11:52.385>like, <00:11:52.525>uh,

276
00:11:53.685 --> 00:11:55.365
<00:11:53.685>queries, <00:11:54.385>subscriptions, <00:11:55.084>mutations,

277
00:11:55.765 --> 00:11:56.805
<00:11:55.765>fragments <00:11:55.920>and <00:11:56.077>so <00:11:56.233>on <00:11:56.389>and <00:11:56.545>so <00:11:56.700>on.

278
00:11:57.185 --> 00:11:58.645
<00:11:57.185>But <00:11:57.447>it's <00:11:57.710>still <00:11:57.973>really, <00:11:58.236>really <00:11:58.499>cool.

279
00:11:59.465 --> 00:12:01.845
<00:11:59.465>Um, <00:11:59.698>there's <00:11:59.931>performance <00:12:00.165>pitfalls <00:12:00.398>with <00:12:00.631>this <00:12:00.865>nesting.

280
00:12:02.025 --> 00:12:04.405
<00:12:02.025>Um, <00:12:02.225>and <00:12:02.425>error <00:12:02.625>handling <00:12:02.824>can <00:12:03.025>also <00:12:03.225>get <00:12:03.425>quite

281
00:12:04.405 --> 00:12:05.605
<00:12:04.405>complicated <00:12:04.675>when <00:12:04.944>you <00:12:05.215>nest <00:12:05.485>deeper.

282
00:12:06.065 --> 00:12:08.965
<00:12:06.065>And <00:12:06.205>on <00:12:06.345>a <00:12:06.485>small <00:12:06.625>note, <00:12:06.765>there <00:12:06.905>might <00:12:07.045>be <00:12:07.185>security <00:12:07.325>risks, <00:12:07.465>um,

283
00:12:08.985 --> 00:12:10.725
<00:12:08.985>if <00:12:09.265>you <00:12:09.545>make <00:12:09.825>very <00:12:10.105>complicated <00:12:10.385>queries

284
00:12:10.725 --> 00:12:11.805
<00:12:10.725>and <00:12:11.049>somebody <00:12:11.372>uses <00:12:11.697>them

285
00:12:11.825 --> 00:12:13.845
<00:12:11.825>to <00:12:12.058>generate <00:12:12.291>huge <00:12:12.525>load <00:12:12.758>on <00:12:12.991>your <00:12:13.225>servers.

286
00:12:15.945 --> 00:12:19.845
<00:12:15.945>Um, <00:12:16.100>GraphQL <00:12:16.256>has <00:12:16.411>a <00:12:16.567>very <00:12:16.722>similar <00:12:16.878>thing <00:12:17.033>as, <00:12:17.189>uh, <00:12:17.345>rest,

287
00:12:19.985 --> 00:12:22.565
<00:12:19.985>but <00:12:20.185>they <00:12:20.385>also <00:12:20.585>support <00:12:20.785>web <00:12:20.985>sockets <00:12:21.185>for <00:12:21.385>subscriptions,

288
00:12:22.565 --> 00:12:24.405
<00:12:22.565>which <00:12:22.740>is <00:12:22.915>very <00:12:23.090>nice <00:12:23.265>for <00:12:23.440>the <00:12:23.615>real <00:12:23.790>time <00:12:23.965>features.

289
00:12:24.745 --> 00:12:26.325
<00:12:24.745>And <00:12:24.920>from <00:12:25.095>the <00:12:25.270>other <00:12:25.445>features <00:12:25.620>that <00:12:25.795>we <00:12:25.970>talk <00:12:26.145>about,

290
00:12:26.325 --> 00:12:29.005
<00:12:26.325>we <00:12:26.480>have <00:12:26.636>strong, <00:12:26.791>uh, <00:12:26.947>s <00:12:27.102>scheme, <00:12:27.258>uh, <00:12:27.413>schema <00:12:27.569>based <00:12:27.725>typing,

291
00:12:29.095 --> 00:12:31.845
<00:12:29.095>built <00:12:29.270>introspection <00:12:29.445>and <00:12:29.620>all <00:12:29.795>these <00:12:29.970>things <00:12:30.145>I <00:12:30.320>just <00:12:30.495>mentioned.

292
00:12:32.545 --> 00:12:35.205
<00:12:32.545>But <00:12:32.778>there's <00:12:33.011>also <00:12:33.245>like <00:12:33.478>federation <00:12:33.711>is <00:12:33.944>possible,

293
00:12:35.255 --> 00:12:38.725
<00:12:35.255>which <00:12:35.410>isn't <00:12:35.566>something <00:12:35.721>that's <00:12:35.877>kind <00:12:36.032>of <00:12:36.188>also <00:12:36.343>led <00:12:36.499>away <00:12:36.655>with.

294
00:12:39.425 --> 00:12:41.565
<00:12:39.425>Um, <00:12:39.580>the <00:12:39.736>cool <00:12:39.891>thing <00:12:40.047>about <00:12:40.202>federation <00:12:40.358>is <00:12:40.513>basically <00:12:40.669>you <00:12:40.824>can

295
00:12:41.565 --> 00:12:44.125
<00:12:41.565>have <00:12:41.740>different <00:12:41.915>teams <00:12:42.090>that <00:12:42.265>work <00:12:42.440>on <00:12:42.615>their <00:12:42.790>own <00:12:42.965>APIs,

296
00:12:44.125 --> 00:12:45.365
<00:12:44.125>like <00:12:44.404>on <00:12:44.683>their <00:12:44.962>own <00:12:45.241>repos,

297
00:12:45.585 --> 00:12:48.845
<00:12:45.585>and <00:12:45.725>you <00:12:45.865>can <00:12:46.005>combine <00:12:46.145>this <00:12:46.285>whole <00:12:46.425>thing <00:12:46.565>into <00:12:46.705>a <00:12:46.845>super <00:12:46.985>schema,

298
00:12:48.865 --> 00:12:51.285
<00:12:48.865>um, <00:12:49.005>and <00:12:49.145>make <00:12:49.285>it <00:12:49.425>seem <00:12:49.565>like <00:12:49.705>one <00:12:49.845>API <00:12:49.985>for <00:12:50.125>somebody <00:12:50.265>else.

299
00:12:51.635 --> 00:12:52.805
<00:12:51.635>It's <00:12:51.898>something <00:12:52.161>that's <00:12:52.424>more <00:12:52.688>coming.

300
00:12:52.905 --> 00:12:54.725
<00:12:52.905>Um, <00:12:53.185>especially <00:12:53.464>Netflix <00:12:53.745>uses <00:12:54.025>them <00:12:54.305>heavily.

301
00:12:55.545 --> 00:12:58.605
<00:12:55.545>Um, <00:12:55.700>and <00:12:55.856>of <00:12:56.011>course <00:12:56.167>other, <00:12:56.322>uh, <00:12:56.478>uh, <00:12:56.633>companies <00:12:56.789>as <00:12:56.944>well.

302
00:12:59.465 --> 00:13:01.485
<00:12:59.465>Um, <00:12:59.665>we <00:12:59.865>have <00:13:00.065>very <00:13:00.265>cool, <00:13:00.465>uh, <00:13:00.665>versioning <00:13:00.865>support

303
00:13:01.545 --> 00:13:03.765
<00:13:01.545>by <00:13:01.778>just <00:13:02.011>deprecating <00:13:02.245>properties <00:13:02.478>and, <00:13:02.711>and <00:13:02.944>methods.

304
00:13:04.545 --> 00:13:08.725
<00:13:04.545>And <00:13:04.685>yeah, <00:13:04.824>let's <00:13:04.964>add <00:13:05.104>all <00:13:05.245>of <00:13:05.385>that <00:13:05.525>to <00:13:05.665>our <00:13:05.805>lovely <00:13:05.944>wishlist.

305
00:13:10.865 --> 00:13:14.405
<00:13:10.865>And <00:13:10.992>now <00:13:11.119>let's <00:13:11.246>jump <00:13:11.374>to <00:13:11.501>the <00:13:11.628>third <00:13:11.755>one, <00:13:11.883>um, <00:13:12.010>which <00:13:12.137>is <00:13:12.265>GRPC.

306
00:13:14.905 --> 00:13:16.365
<00:13:14.905>And <00:13:15.167>maybe <00:13:15.430>just <00:13:15.693>out <00:13:15.956>of <00:13:16.219>interest,

307
00:13:16.825 --> 00:13:19.445
<00:13:16.825>who <00:13:17.025>have <00:13:17.225>you <00:13:17.425>actually <00:13:17.625>has <00:13:17.825>used <00:13:18.025>GRPC <00:13:18.225>before?

308
00:13:19.835 --> 00:13:22.165
<00:13:19.835>Just <00:13:20.115>a <00:13:20.395>raise <00:13:20.675>of <00:13:20.955>hands. <00:13:21.235>Okay.

309
00:13:22.165 --> 00:13:23.645
<00:13:22.165>This <00:13:22.355>is <00:13:22.545>a <00:13:22.735>lot <00:13:22.926>less <00:13:23.116>than <00:13:23.306>the <00:13:23.497>rest.

310
00:13:24.065 --> 00:13:26.805
<00:13:24.065>Um, <00:13:24.192>actually <00:13:24.319>who <00:13:24.446>have <00:13:24.574>you <00:13:24.701>knows, <00:13:24.828>GRPC <00:13:24.955>or <00:13:25.083>knows <00:13:25.210>what <00:13:25.337>it <00:13:25.465>is?

311
00:13:26.935 --> 00:13:30.485
<00:13:26.935>Sorry, <00:13:27.135>I <00:13:27.334>am <00:13:27.535>just <00:13:27.734>really <00:13:27.935>interested. <00:13:28.135>Okay, <00:13:28.334>perfect.

312
00:13:30.555 --> 00:13:34.205
<00:13:30.555>This <00:13:30.694>is <00:13:30.834>good. <00:13:30.974>Um, <00:13:31.114>so <00:13:31.255>about <00:13:31.395>third <00:13:31.535>I <00:13:31.675>would <00:13:31.814>say, <00:13:31.954>um,

313
00:13:34.365 --> 00:13:35.765
<00:13:34.365>GRPC <00:13:34.680>is <00:13:34.995>basically <00:13:35.310>a <00:13:35.625>protocol

314
00:13:35.865 --> 00:13:38.805
<00:13:35.865>or, <00:13:36.040>uh, <00:13:36.215>uh, <00:13:36.390>yeah, <00:13:36.565>protocol, <00:13:36.740>um, <00:13:36.915>developed <00:13:37.090>by <00:13:37.265>Google.

315
00:13:38.945 --> 00:13:41.605
<00:13:38.945>And <00:13:39.072>the <00:13:39.199>idea <00:13:39.326>is <00:13:39.454>it <00:13:39.581>works <00:13:39.708>a <00:13:39.835>little <00:13:39.963>bit <00:13:40.090>different <00:13:40.217>than <00:13:40.345>rest

316
00:13:41.955 --> 00:13:44.805
<00:13:41.955>because <00:13:42.110>the <00:13:42.266>whole <00:13:42.421>thing <00:13:42.577>is, <00:13:42.732>it's <00:13:42.888>a <00:13:43.043>remote <00:13:43.199>procedure <00:13:43.355>call.

317
00:13:44.805 --> 00:13:47.605
<00:13:44.805>As <00:13:44.921>I <00:13:45.038>mentioned <00:13:45.155>before, <00:13:45.271>you <00:13:45.388>call <00:13:45.505>a <00:13:45.621>method <00:13:45.738>on <00:13:45.854>the, <00:13:45.971>on <00:13:46.088>the <00:13:46.204>API.

318
00:13:48.145 --> 00:13:50.365
<00:13:48.145>Um, <00:13:48.345>and <00:13:48.545>it's <00:13:48.745>very <00:13:48.944>good <00:13:49.145>for <00:13:49.345>high <00:13:49.545>performance

319
00:13:50.365 --> 00:13:52.045
<00:13:50.365>and <00:13:50.645>low <00:13:50.925>latency, <00:13:51.205>uh, <00:13:51.485>use <00:13:51.765>cases.

320
00:13:52.115 --> 00:13:54.645
<00:13:52.115>This <00:13:52.290>is <00:13:52.465>why <00:13:52.640>it's <00:13:52.815>mostly <00:13:52.990>used <00:13:53.165>nowadays <00:13:53.340>for, <00:13:53.515>um,

321
00:13:54.805 --> 00:13:57.525
<00:13:54.805>microservice <00:13:55.038>connection <00:13:55.271>connections <00:13:55.505>and <00:13:55.738>stuff <00:13:55.971>like <00:13:56.204>that.

322
00:13:58.145 --> 00:14:01.045
<00:13:58.145>Um, <00:13:58.285>it <00:13:58.425>uses <00:13:58.564>proto <00:13:58.704>puffs, <00:13:58.845>which <00:13:58.985>is <00:13:59.125>like <00:13:59.265>a <00:13:59.405>binary <00:13:59.545>format,

323
00:14:01.375 --> 00:14:04.405
<00:14:01.375>which <00:14:01.575>makes <00:14:01.775>it <00:14:01.975>really <00:14:02.175>small, <00:14:02.375>really <00:14:02.575>efficient, <00:14:02.775>um,

324
00:14:05.105 --> 00:14:06.725
<00:14:05.105>but <00:14:05.385>adds <00:14:05.665>some <00:14:05.945>of <00:14:06.225>the <00:14:06.505>complication.

325
00:14:07.865 --> 00:14:09.245
<00:14:07.865>Um, <00:14:08.279>it's <00:14:08.693>strongly <00:14:09.107>typed.

326
00:14:09.505 --> 00:14:13.325
<00:14:09.505>Um, <00:14:09.632>it <00:14:09.759>has <00:14:09.886>a <00:14:10.014>lot <00:14:10.141>of <00:14:10.268>cross <00:14:10.395>language, <00:14:10.523>uh, <00:14:10.650>like, <00:14:10.777>uh, <00:14:10.905>libraries.

327
00:14:13.325 --> 00:14:15.325
<00:14:13.325>Like <00:14:13.558>really <00:14:13.791>there's <00:14:14.025>almost <00:14:14.258>for <00:14:14.491>every, <00:14:14.725>uh,

328
00:14:15.325 --> 00:14:17.045
<00:14:15.325>text <00:14:15.500>stack <00:14:15.675>I <00:14:15.850>wanted, <00:14:16.025>like <00:14:16.200>I <00:14:16.375>found <00:14:16.550>a <00:14:16.725>library.

329
00:14:17.705 --> 00:14:20.085
<00:14:17.705>Um, <00:14:17.905>and <00:14:18.105>it <00:14:18.305>use, <00:14:18.505>uh, <00:14:18.705>uses <00:14:18.905>streaming <00:14:19.105>heavily.

330
00:14:20.225 --> 00:14:22.365
<00:14:20.225>So <00:14:20.380>what <00:14:20.536>it <00:14:20.691>does <00:14:20.847>is <00:14:21.002>basically <00:14:21.158>it <00:14:21.313>opens <00:14:21.469>a <00:14:21.625>connection

331
00:14:22.365 --> 00:14:24.365
<00:14:22.365>to <00:14:22.598>the <00:14:22.831>API <00:14:23.065>between <00:14:23.298>client <00:14:23.531>or <00:14:23.765>services,

332
00:14:24.665 --> 00:14:27.405
<00:14:24.665>and <00:14:24.820>it <00:14:24.976>leaves <00:14:25.131>that <00:14:25.287>open <00:14:25.442>and <00:14:25.598>sends <00:14:25.753>requests <00:14:25.909>along <00:14:26.064>that

333
00:14:27.545 --> 00:14:29.805
<00:14:27.545>and <00:14:27.824>thereby <00:14:28.104>being <00:14:28.385>faster <00:14:28.665>than <00:14:28.944>having

334
00:14:29.805 --> 00:14:31.325
<00:14:29.805>to <00:14:30.000>do <00:14:30.195>handshakes <00:14:30.391>and <00:14:30.586>stuff <00:14:30.782>all <00:14:30.977>the <00:14:31.173>time.

335
00:14:32.345 --> 00:14:33.805
<00:14:32.345>The <00:14:32.783>downside, <00:14:33.221>um, <00:14:33.659>is

336
00:14:33.805 --> 00:14:35.805
<00:14:33.805>that <00:14:34.038>it <00:14:34.271>has <00:14:34.505>limited <00:14:34.738>native <00:14:34.971>browser <00:14:35.204>support.

337
00:14:35.805 --> 00:14:38.245
<00:14:35.805>There <00:14:36.084>is <00:14:36.364>web <00:14:36.645>R <00:14:36.925>uh, <00:14:37.204>GRPC,

338
00:14:38.425 --> 00:14:42.245
<00:14:38.425>but <00:14:38.564>it's <00:14:38.704>still <00:14:38.844>a <00:14:38.984>little <00:14:39.125>bit, <00:14:39.265>uh, <00:14:39.405>something <00:14:39.545>you <00:14:39.685>would <00:14:39.824>add.

339
00:14:42.865 --> 00:14:44.405
<00:14:42.865>Uh, <00:14:43.211>it <00:14:43.558>has <00:14:43.904>increased <00:14:44.251>complexity

340
00:14:44.405 --> 00:14:45.485
<00:14:44.405>because <00:14:44.648>with <00:14:44.891>the <00:14:45.134>prote <00:14:45.377>aboves

341
00:14:45.485 --> 00:14:47.285
<00:14:45.485>and <00:14:45.660>the <00:14:45.835>binary <00:14:46.010>format, <00:14:46.185>you <00:14:46.360>have <00:14:46.535>to <00:14:46.710>debug <00:14:46.885>that.

342
00:14:47.285 --> 00:14:48.805
<00:14:47.285>You <00:14:47.512>don't <00:14:47.741>see <00:14:47.968>that <00:14:48.197>in <00:14:48.425>network <00:14:48.652>text.

343
00:14:48.905 --> 00:14:51.645
<00:14:48.905>Uh, <00:14:49.045>you <00:14:49.185>don't <00:14:49.324>see <00:14:49.464>the <00:14:49.605>clear, <00:14:49.745>uh, <00:14:49.885>content <00:14:50.025>of <00:14:50.165>the <00:14:50.305>thing.

344
00:14:52.345 --> 00:14:55.005
<00:14:52.345>And <00:14:52.520>it's <00:14:52.695>not <00:14:52.870>ideal <00:14:53.045>for <00:14:53.220>public <00:14:53.395>open <00:14:53.570>web <00:14:53.745>APIs

345
00:14:55.005 --> 00:14:58.715
<00:14:55.005>because <00:14:55.205>of <00:14:55.405>these <00:14:55.605>reasons <00:14:55.805>and <00:14:56.005>difficulties <00:14:56.205>like <00:14:56.405>caching

346
00:14:58.715 --> 00:15:00.835
<00:14:58.715>and <00:14:58.948>visibility <00:14:59.181>is <00:14:59.415>can <00:14:59.648>get <00:14:59.881>quite <00:15:00.115>tricky.

347
00:15:02.855 --> 00:15:05.875
<00:15:02.855>Um, <00:15:02.995>it <00:15:03.135>use <00:15:03.275>HDP <00:15:03.415>two <00:15:03.555>mainly, <00:15:03.695>like <00:15:03.835>with <00:15:03.975>these <00:15:04.115>proto, <00:15:04.255>uh,

348
00:15:05.875 --> 00:15:07.395
<00:15:05.875>buffer <00:15:06.559>serialization <00:15:07.242>approach.

349
00:15:07.975 --> 00:15:09.875
<00:15:07.975>And <00:15:08.255>the <00:15:08.535>communication <00:15:08.815>is <00:15:09.095>done <00:15:09.375>either

350
00:15:09.975 --> 00:15:11.795
<00:15:09.975>by <00:15:10.325>request <00:15:10.675>response <00:15:11.025>or <00:15:11.375>streaming.

351
00:15:11.895 --> 00:15:15.195
<00:15:11.895>And <00:15:12.022>this <00:15:12.149>is <00:15:12.276>the <00:15:12.404>nice <00:15:12.531>thing <00:15:12.658>about <00:15:12.785>this, <00:15:12.913>um, <00:15:13.040>uh, <00:15:13.167>specific, <00:15:13.295>uh,

352
00:15:15.195 --> 00:15:18.315
<00:15:15.195>like <00:15:15.350>protocol <00:15:15.506>is <00:15:15.661>that <00:15:15.817>as <00:15:15.972>a <00:15:16.128>client, <00:15:16.283>I <00:15:16.439>don't <00:15:16.595>have

353
00:15:18.315 --> 00:15:19.835
<00:15:18.315>to <00:15:18.543>care <00:15:18.771>how <00:15:18.999>I <00:15:19.227>get <00:15:19.455>the <00:15:19.683>data.

354
00:15:20.435 --> 00:15:21.635
<00:15:20.435>I <00:15:20.615>just <00:15:20.795>say <00:15:20.974>I <00:15:21.155>want <00:15:21.335>the <00:15:21.515>data

355
00:15:22.575 --> 00:15:24.315
<00:15:22.575>and <00:15:22.750>it <00:15:22.925>takes <00:15:23.100>care <00:15:23.275>of <00:15:23.450>me <00:15:23.625>in <00:15:23.800>the <00:15:23.975>background.

356
00:15:24.315 --> 00:15:26.075
<00:15:24.315>So <00:15:24.490>I <00:15:24.665>don't <00:15:24.840>have <00:15:25.015>to <00:15:25.190>decide, <00:15:25.365>okay, <00:15:25.540>I'm <00:15:25.715>going

357
00:15:26.075 --> 00:15:27.155
<00:15:26.075>to <00:15:26.269>use <00:15:26.463>web <00:15:26.658>sockets <00:15:26.852>for <00:15:27.047>this

358
00:15:27.335 --> 00:15:29.435
<00:15:27.335>and <00:15:27.535>maybe <00:15:27.735>they're <00:15:27.935>a <00:15:28.135>little <00:15:28.335>bit <00:15:28.535>limited <00:15:28.735>here,

359
00:15:29.455 --> 00:15:32.795
<00:15:29.455>or <00:15:29.562>I <00:15:29.670>have <00:15:29.778>to <00:15:29.885>use <00:15:29.993>the <00:15:30.101>rest <00:15:30.208>API <00:15:30.316>here <00:15:30.424>I <00:15:30.531>can <00:15:30.639>really <00:15:30.747>just <00:15:30.855>use

360
00:15:32.795 --> 00:15:34.235
<00:15:32.795>basically <00:15:33.443>my <00:15:34.091>command

361
00:15:34.255 --> 00:15:36.675
<00:15:34.255>and <00:15:34.395>I <00:15:34.535>get <00:15:34.675>the <00:15:34.814>re <00:15:34.955>result <00:15:35.095>in <00:15:35.235>the <00:15:35.375>best <00:15:35.515>way <00:15:35.655>possible.

362
00:15:37.015 --> 00:15:38.355
<00:15:37.015>And <00:15:37.216>this <00:15:37.417>is <00:15:37.618>something <00:15:37.819>I <00:15:38.020>really <00:15:38.221>like.

363
00:15:38.355 --> 00:15:40.435
<00:15:38.355>Like <00:15:38.530>this <00:15:38.705>is <00:15:38.880>something <00:15:39.055>I, <00:15:39.230>this <00:15:39.405>got <00:15:39.580>definitely <00:15:39.755>going

364
00:15:40.435 --> 00:15:42.795
<00:15:40.435>to <00:15:40.635>be <00:15:40.834>on <00:15:41.035>my, <00:15:41.234>uh, <00:15:41.435>on <00:15:41.635>my <00:15:41.834>wishlist.

365
00:15:43.535 --> 00:15:45.635
<00:15:43.535>So <00:15:43.709>yeah. <00:15:43.885>Um, <00:15:44.060>as <00:15:44.235>I <00:15:44.410>mentioned, <00:15:44.584>we <00:15:44.760>have, <00:15:44.935>uh,

366
00:15:45.635 --> 00:15:47.715
<00:15:45.635>automatic <00:15:45.985>cross <00:15:46.335>language <00:15:46.685>client <00:15:47.035>generation,

367
00:15:47.715 --> 00:15:49.195
<00:15:47.715>like <00:15:47.937>it <00:15:48.159>generates <00:15:48.381>a <00:15:48.603>client <00:15:48.825>for <00:15:49.047>you.

368
00:15:49.295 --> 00:15:50.475
<00:15:49.295>Uh, <00:15:49.649>we <00:15:50.003>have <00:15:50.357>authentication

369
00:15:50.895 --> 00:15:52.435
<00:15:50.895>and <00:15:51.241>we <00:15:51.588>have <00:15:51.934>excellent <00:15:52.281>performance.

370
00:15:52.465 --> 00:15:56.115
<00:15:52.465>This <00:15:52.620>is <00:15:52.776>really <00:15:52.931>nice. <00:15:53.087>Let's <00:15:53.242>add <00:15:53.398>all <00:15:53.553>of <00:15:53.709>that. <00:15:53.865>Perfect.

371
00:15:56.135 --> 00:15:58.035
<00:15:56.135>The <00:15:56.262>last <00:15:56.389>one <00:15:56.516>is <00:15:56.644>a <00:15:56.771>little <00:15:56.898>bit <00:15:57.025>of <00:15:57.153>an <00:15:57.280>odd <00:15:57.407>one <00:15:57.535>out.

372
00:15:58.615 --> 00:15:59.995
<00:15:58.615>Um, <00:15:58.925>it's <00:15:59.236>the <00:15:59.546>fire <00:15:59.857>base.

373
00:16:00.095 --> 00:16:01.115
<00:16:00.095>Um, <00:16:00.278>I <00:16:00.462>just <00:16:00.645>added <00:16:00.829>in <00:16:01.013>there

374
00:16:01.115 --> 00:16:02.675
<00:16:01.115>because <00:16:01.290>there's <00:16:01.465>also <00:16:01.640>some <00:16:01.815>things <00:16:01.990>I <00:16:02.165>wanna <00:16:02.340>steal <00:16:02.515>here.

375
00:16:03.015 --> 00:16:05.835
<00:16:03.015>Um, <00:16:03.215>it's <00:16:03.415>not <00:16:03.615>technically <00:16:03.814>an <00:16:04.015>API <00:16:04.215>per <00:16:04.415>se,

376
00:16:05.945 --> 00:16:07.875
<00:16:05.945>it's <00:16:06.225>a <00:16:06.505>cloud <00:16:06.785>storage, <00:16:07.065>uh, <00:16:07.345>sorry,

377
00:16:07.875 --> 00:16:09.515
<00:16:07.875>it's <00:16:08.108>a <00:16:08.341>cloud <00:16:08.575>database <00:16:08.808>service <00:16:09.041>by <00:16:09.275>Google,

378
00:16:09.775 --> 00:16:12.275
<00:16:09.775>but <00:16:09.915>it <00:16:10.055>has <00:16:10.194>a <00:16:10.334>very <00:16:10.475>nice <00:16:10.615>client <00:16:10.755>that <00:16:10.895>it <00:16:11.035>communicates <00:16:11.175>over

379
00:16:13.255 --> 00:16:14.515
<00:16:13.255>and <00:16:13.481>this <00:16:13.708>is <00:16:13.935>how <00:16:14.162>it's <00:16:14.389>done.

380
00:16:14.515 --> 00:16:15.915
<00:16:14.515>Basically <00:16:14.766>you <00:16:15.019>have <00:16:15.271>this <00:16:15.523>query <00:16:15.775>builder

381
00:16:16.015 --> 00:16:17.795
<00:16:16.015>and <00:16:16.215>you <00:16:16.415>can <00:16:16.615>just <00:16:16.814>query <00:16:17.015>data <00:16:17.215>from <00:16:17.415>your

382
00:16:17.795 --> 00:16:19.315
<00:16:17.795>client <00:16:18.137>directly <00:16:18.479>from <00:16:18.821>the <00:16:19.163>database.

383
00:16:19.455 --> 00:16:21.475
<00:16:19.455>Of <00:16:19.630>course, <00:16:19.805>this <00:16:19.980>requires <00:16:20.155>a <00:16:20.330>very <00:16:20.505>good <00:16:20.680>permission <00:16:20.855>system.

384
00:16:23.175 --> 00:16:25.395
<00:16:23.175>Um, <00:16:23.314>yeah, <00:16:23.454>it <00:16:23.594>has <00:16:23.734>a <00:16:23.875>real <00:16:24.015>time <00:16:24.155>backend <00:16:24.295>as <00:16:24.435>a <00:16:24.574>service.

385
00:16:25.595 --> 00:16:28.235
<00:16:25.595>I <00:16:25.722>have <00:16:25.849>the <00:16:25.976>client <00:16:26.104>that's <00:16:26.231>the <00:16:26.358>case. <00:16:26.485>I <00:16:26.613>have <00:16:26.740>s <00:16:26.867>and <00:16:26.995>storage.

386
00:16:28.575 --> 00:16:30.395
<00:16:28.575>Uh, <00:16:28.855>it's <00:16:29.135>great <00:16:29.415>for <00:16:29.695>rapid <00:16:29.975>prototyping,

387
00:16:30.815 --> 00:16:32.275
<00:16:30.815>but <00:16:31.077>of <00:16:31.340>course <00:16:31.603>it <00:16:31.866>has <00:16:32.129>downsides

388
00:16:32.275 --> 00:16:33.875
<00:16:32.275>and <00:16:32.508>they're <00:16:32.741>mostly <00:16:32.975>the <00:16:33.208>vendor <00:16:33.441>lock <00:16:33.675>in

389
00:16:33.875 --> 00:16:36.595
<00:16:33.875>with <00:16:34.108>Google <00:16:34.341>data <00:16:34.575>control, <00:16:34.808>privacy, <00:16:35.041>less <00:16:35.275>control.

390
00:16:36.655 --> 00:16:38.955
<00:16:36.655>So <00:16:36.771>the <00:16:36.888>typical <00:16:37.005>things <00:16:37.121>you <00:16:37.238>find <00:16:37.355>in <00:16:37.471>a <00:16:37.588>soft <00:16:37.704>in <00:16:37.821>a <00:16:37.938>a <00:16:38.055>p

391
00:16:38.955 --> 00:16:42.235
<00:16:38.955>as <00:16:39.110>a <00:16:39.266>service <00:16:39.421>and <00:16:39.577>cost <00:16:39.732>can <00:16:39.888>of <00:16:40.043>course <00:16:40.199>grow <00:16:40.355>quickly.

392
00:16:42.865 --> 00:16:45.115
<00:16:42.865>There's <00:16:43.215>some <00:16:43.565>self-hosted <00:16:43.915>alternatives, <00:16:44.265>um,

393
00:16:45.115 --> 00:16:47.515
<00:16:45.115>that <00:16:45.395>I <00:16:45.675>personally <00:16:45.955>prefer, <00:16:46.235>prefer, <00:16:46.515>uh,

394
00:16:47.575 --> 00:16:49.195
<00:16:47.575>but <00:16:47.808>they're <00:16:48.041>like <00:16:48.275>less <00:16:48.508>known <00:16:48.741>than <00:16:48.975>that.

395
00:16:50.525 --> 00:16:54.215
<00:16:50.525>Perfect. <00:16:50.699>Uh, <00:16:50.875>firebase, <00:16:51.050>uh, <00:16:51.225>basically <00:16:51.400>HTP <00:16:51.574>two <00:16:51.750>web <00:16:51.925>sock.

396
00:16:54.215 --> 00:16:55.615
<00:16:54.215>It's <00:16:54.530>very <00:16:54.845>similar <00:16:55.160>to <00:16:55.475>GraphQL.

397
00:16:56.055 --> 00:16:58.135
<00:16:56.055>Communication <00:16:56.288>is <00:16:56.521>also <00:16:56.755>very <00:16:56.988>similar. <00:16:57.221>And <00:16:57.454>feature-wise,

398
00:16:58.215 --> 00:17:00.815
<00:16:58.215>I <00:16:58.415>would <00:16:58.615>like <00:16:58.815>to <00:16:59.015>highlight <00:16:59.215>the <00:16:59.415>offline <00:16:59.615>persistence,

399
00:17:00.815 --> 00:17:03.495
<00:17:00.815>which <00:17:00.942>is <00:17:01.069>nice, <00:17:01.196>like <00:17:01.324>maybe <00:17:01.451>in <00:17:01.578>20 <00:17:01.705>years <00:17:01.833>we <00:17:01.960>don't <00:17:02.087>need <00:17:02.215>that,

400
00:17:03.595 --> 00:17:05.215
<00:17:03.595>but <00:17:03.828>right <00:17:04.061>now <00:17:04.295>we <00:17:04.528>still <00:17:04.761>sometimes <00:17:04.995>need

401
00:17:05.215 --> 00:17:06.735
<00:17:05.214>to <00:17:05.488>be <00:17:05.762>offline <00:17:06.035>and <00:17:06.309>sync <00:17:06.582>data.

402
00:17:06.735 --> 00:17:08.575
<00:17:06.734>They <00:17:07.014>have <00:17:07.294>that <00:17:07.574>built <00:17:07.854>in, <00:17:08.135>uh,

403
00:17:08.675 --> 00:17:10.135
<00:17:08.675>def <00:17:09.113>declarative <00:17:09.550>permission <00:17:09.989>rules.

404
00:17:10.195 --> 00:17:12.135
<00:17:10.194>So <00:17:10.428>I <00:17:10.661>can <00:17:10.895>like <00:17:11.128>basically <00:17:11.361>make <00:17:11.595>sure

405
00:17:12.135 --> 00:17:13.735
<00:17:12.135>that <00:17:12.335>no <00:17:12.535>one <00:17:12.734>queries <00:17:12.935>something <00:17:13.135>they're <00:17:13.335>not <00:17:13.535>allowed

406
00:17:13.735 --> 00:17:16.535
<00:17:13.734>to <00:17:13.935>automatic <00:17:14.135>scaling, <00:17:14.334>which <00:17:14.534>is <00:17:14.734>always <00:17:14.935>very <00:17:15.135>nice.

407
00:17:16.535 --> 00:17:18.775
<00:17:16.535>I <00:17:16.690>don't <00:17:16.846>have <00:17:17.001>to <00:17:17.157>care <00:17:17.312>about <00:17:17.468>the <00:17:17.623>loads <00:17:17.779>edge <00:17:17.935>delivery.

408
00:17:18.975 --> 00:17:22.295
<00:17:18.974>I <00:17:19.130>get <00:17:19.286>the <00:17:19.441>data <00:17:19.597>from <00:17:19.752>the <00:17:19.908>nearest <00:17:20.063>API <00:17:20.219>endpoint <00:17:20.375>possible.

409
00:17:23.315 --> 00:17:26.015
<00:17:23.315>And, <00:17:23.548>uh, <00:17:23.781>of <00:17:24.015>course <00:17:24.248>insights <00:17:24.481>and <00:17:24.715>telemetry.

410
00:17:26.015 --> 00:17:27.855
<00:17:26.015>And <00:17:26.190>this <00:17:26.365>is <00:17:26.540>something <00:17:26.715>in <00:17:26.890>my <00:17:27.065>opinion <00:17:27.240>is <00:17:27.415>very,

411
00:17:27.885 --> 00:17:30.735
<00:17:27.885>very <00:17:28.085>overlooked <00:17:28.285>right <00:17:28.484>now, <00:17:28.685>um, <00:17:28.885>to <00:17:29.085>really <00:17:29.285>know

412
00:17:30.735 --> 00:17:33.615
<00:17:30.735>what <00:17:30.890>your <00:17:31.046>APIs <00:17:31.201>do, <00:17:31.357>which <00:17:31.512>ones <00:17:31.668>are <00:17:31.823>the <00:17:31.979>slow <00:17:32.135>requests,

413
00:17:33.615 --> 00:17:35.895
<00:17:33.615>which <00:17:33.770>ones <00:17:33.926>are <00:17:34.081>failing, <00:17:34.237>and <00:17:34.392>so <00:17:34.548>on <00:17:34.703>and <00:17:34.859>so <00:17:35.015>on.

414
00:17:36.835 --> 00:17:39.695
<00:17:36.835>So <00:17:36.990>again, <00:17:37.146>let's <00:17:37.301>add <00:17:37.457>all <00:17:37.612>of <00:17:37.768>this <00:17:37.923>to <00:17:38.079>the <00:17:38.235>list.

415
00:17:41.365 --> 00:17:44.095
<00:17:41.365>Perfect. <00:17:41.565>And <00:17:41.765>so <00:17:41.965>here, <00:17:42.165>let's <00:17:42.365>make <00:17:42.565>our <00:17:42.765>wishlist.

416
00:17:44.655 --> 00:17:47.215
<00:17:44.655>I <00:17:44.810>grouped <00:17:44.966>all <00:17:45.121>the <00:17:45.277>things <00:17:45.432>we <00:17:45.588>just <00:17:45.743>collected <00:17:45.899>into <00:17:46.055>three

417
00:17:47.215 --> 00:17:48.215
<00:17:47.215>different <00:17:48.115>points.

418
00:17:48.475 --> 00:17:50.685
<00:17:48.475>Dev <00:17:48.754>experience, <00:17:49.034>performance, <00:17:49.314>security <00:17:49.594>and <00:17:49.875>stability.

419
00:17:51.385 --> 00:17:53.485
<00:17:51.385>And <00:17:51.540>I <00:17:51.696>just <00:17:51.851>threw <00:17:52.007>everything <00:17:52.162>that <00:17:52.318>we <00:17:52.473>have <00:17:52.629>on <00:17:52.785>there,

420
00:17:53.555 --> 00:17:56.565
<00:17:53.555>like <00:17:53.835>from <00:17:54.115>introspection, <00:17:54.395>documentation, <00:17:54.675>offline <00:17:54.955>support

421
00:17:56.565 --> 00:17:59.205
<00:17:56.565>and <00:17:56.845>sync, <00:17:57.125>versioning, <00:17:57.405>strong <00:17:57.685>types, <00:17:57.965>pagination,

422
00:17:59.665 --> 00:18:01.645
<00:17:59.665>and <00:17:59.898>one <00:18:00.131>of <00:18:00.365>my <00:18:00.598>favorites, <00:18:00.831>mock <00:18:01.065>ability.

423
00:18:01.805 --> 00:18:03.485
<00:18:01.805>I <00:18:01.932>would <00:18:02.059>really <00:18:02.186>like <00:18:02.314>to <00:18:02.441>have <00:18:02.568>an <00:18:02.695>API <00:18:02.823>that <00:18:02.950>just, <00:18:03.077>you <00:18:03.205>know,

424
00:18:03.835 --> 00:18:06.725
<00:18:03.835>lets <00:18:03.990>me <00:18:04.146>use <00:18:04.301>it <00:18:04.457>mocked <00:18:04.612>without <00:18:04.768>having <00:18:04.923>to <00:18:05.079>go, <00:18:05.235>uh,

425
00:18:06.865 --> 00:18:09.925
<00:18:06.865>or <00:18:07.065>build <00:18:07.265>around <00:18:07.465>this <00:18:07.665>a <00:18:07.865>lot <00:18:08.065>performance <00:18:08.265>wise.

426
00:18:10.185 --> 00:18:12.125
<00:18:10.185>Um, <00:18:10.418>we <00:18:10.651>have <00:18:10.885>automated <00:18:11.118>handling <00:18:11.351>of <00:18:11.585>protocol.

427
00:18:12.125 --> 00:18:13.885
<00:18:12.125>Like <00:18:12.325>I <00:18:12.525>said, <00:18:12.725>I <00:18:12.925>would <00:18:13.125>really <00:18:13.325>not <00:18:13.525>like

428
00:18:13.885 --> 00:18:16.565
<00:18:13.885>to <00:18:14.060>care <00:18:14.235>about <00:18:14.410>the <00:18:14.585>communication <00:18:14.760>method <00:18:14.935>and <00:18:15.110>the <00:18:15.285>protocol.

429
00:18:16.805 --> 00:18:18.885
<00:18:16.805>I <00:18:16.960>just <00:18:17.116>want <00:18:17.271>the <00:18:17.427>client <00:18:17.582>to <00:18:17.738>handle <00:18:17.893>this <00:18:18.049>for <00:18:18.205>me.

430
00:18:19.505 --> 00:18:21.165
<00:18:19.505>Um, <00:18:19.855>there's <00:18:20.205>caching, <00:18:20.555>automated <00:18:20.905>scaling

431
00:18:21.235 --> 00:18:22.725
<00:18:21.235>edge <00:18:21.681>delivery, <00:18:22.129>two-way <00:18:22.576>streaming.

432
00:18:23.625 --> 00:18:26.365
<00:18:23.625>And <00:18:23.975>for <00:18:24.325>security, <00:18:24.675>like <00:18:25.025>authentication,

433
00:18:26.495 --> 00:18:29.485
<00:18:26.495>permission <00:18:26.774>systems <00:18:27.054>are <00:18:27.334>given <00:18:27.614>inside <00:18:27.895>telemetry

434
00:18:29.825 --> 00:18:31.125
<00:18:29.825>and <00:18:30.410>automated <00:18:30.995>testing

435
00:18:31.125 --> 00:18:34.085
<00:18:31.125>because <00:18:31.252>I <00:18:31.379>think <00:18:31.506>this <00:18:31.634>is <00:18:31.761>where <00:18:31.888>right <00:18:32.015>now <00:18:32.143>a <00:18:32.270>lot <00:18:32.397>of, <00:18:32.525>uh,

436
00:18:34.085 --> 00:18:35.325
<00:18:34.085>technologies <00:18:34.643>fall <00:18:35.201>short.

437
00:18:35.655 --> 00:18:38.405
<00:18:35.655>There <00:18:35.782>are <00:18:35.909>a <00:18:36.036>lot <00:18:36.164>of <00:18:36.291>services <00:18:36.418>that <00:18:36.545>that, <00:18:36.673>that <00:18:36.800>work <00:18:36.927>with <00:18:37.055>it,

438
00:18:38.665 --> 00:18:40.805
<00:18:38.665>but <00:18:38.781>you <00:18:38.898>know <00:18:39.014>how <00:18:39.131>it <00:18:39.248>is, <00:18:39.365>like <00:18:39.481>I'd <00:18:39.598>rather <00:18:39.715>have <00:18:39.831>it <00:18:39.948>as <00:18:40.065>part

439
00:18:40.865 --> 00:18:42.685
<00:18:40.865>of <00:18:41.098>the <00:18:41.331>whole <00:18:41.565>idea <00:18:41.798>of <00:18:42.031>the <00:18:42.265>API

440
00:18:43.785 --> 00:18:47.205
<00:18:43.785>and <00:18:43.940>if <00:18:44.096>you <00:18:44.251>think, <00:18:44.407>you <00:18:44.562>know, <00:18:44.718>nice <00:18:44.873>finally <00:18:45.029>a <00:18:45.185>talk

441
00:18:47.255 --> 00:18:50.765
<00:18:47.255>where <00:18:47.395>there's <00:18:47.535>no <00:18:47.675>talk <00:18:47.815>about <00:18:47.955>AI <00:18:48.095>and <00:18:48.235>stuff <00:18:48.375>like <00:18:48.515>that <00:18:48.655>here.

442
00:18:51.745 --> 00:18:53.525
<00:18:51.745>I'm <00:18:51.919>sorry, <00:18:52.094>I <00:18:52.270>kind <00:18:52.445>of <00:18:52.620>have <00:18:52.794>to <00:18:52.969>disappoint <00:18:53.145>you

443
00:18:53.525 --> 00:18:54.725
<00:18:53.525>because <00:18:53.705>there's <00:18:53.885>a <00:18:54.065>lot <00:18:54.245>of <00:18:54.425>cool <00:18:54.605>AI

444
00:18:54.725 --> 00:18:55.925
<00:18:54.725>stuff <00:18:54.905>you <00:18:55.085>could <00:18:55.264>add <00:18:55.445>here <00:18:55.625>as <00:18:55.804>well.

445
00:18:56.665 --> 00:19:00.005
<00:18:56.665>So, <00:18:56.865>um, <00:18:57.065>yeah, <00:18:57.264>how <00:18:57.465>about <00:18:57.665>AI <00:18:57.865>generated <00:18:58.065>documentation?

446
00:19:00.745 --> 00:19:02.685
<00:19:00.745>How <00:19:01.094>about <00:19:01.445>predictive <00:19:01.794>self <00:19:02.145>optimization?

447
00:19:03.225 --> 00:19:05.965
<00:19:03.225>Um, <00:19:03.504>how <00:19:03.784>about <00:19:04.064>intelligent <00:19:04.344>threat <00:19:04.625>detection,

448
00:19:06.435 --> 00:19:08.525
<00:19:06.435>automated <00:19:06.901>data <00:19:07.368>publication, <00:19:07.835>um,

449
00:19:09.225 --> 00:19:10.445
<00:19:09.225>and <00:19:09.774>contextual <00:19:10.322>understanding.

450
00:19:10.585 --> 00:19:13.125
<00:19:10.585>And <00:19:10.785>of <00:19:10.985>course <00:19:11.185>my <00:19:11.385>favorite <00:19:11.585>AI <00:19:11.785>data <00:19:11.985>marking.

451
00:19:13.355 --> 00:19:15.325
<00:19:13.355>Like <00:19:13.530>I <00:19:13.705>said, <00:19:13.880>these <00:19:14.055>are <00:19:14.230>just <00:19:14.405>ideas <00:19:14.580>that, <00:19:14.755>that

452
00:19:15.325 --> 00:19:16.445
<00:19:15.325>that <00:19:15.577>could <00:19:15.829>work <00:19:16.081>in <00:19:16.332>there,

453
00:19:16.585 --> 00:19:18.925
<00:19:16.585>but <00:19:16.712>I <00:19:16.839>think <00:19:16.966>it <00:19:17.094>could <00:19:17.221>really <00:19:17.348>make <00:19:17.475>this <00:19:17.603>whole <00:19:17.730>thing <00:19:17.857>worth <00:19:17.985>it.

454
00:19:21.595 --> 00:19:24.815
<00:19:21.595>So <00:19:21.711>yeah, <00:19:21.828>um, <00:19:21.945>the <00:19:22.061>question <00:19:22.178>is <00:19:22.295>like, <00:19:22.411>now <00:19:22.528>we <00:19:22.645>know <00:19:22.761>what <00:19:22.878>we <00:19:22.995>want,

455
00:19:24.815 --> 00:19:26.415
<00:19:24.815>but <00:19:25.015>do <00:19:25.215>we <00:19:25.415>have <00:19:25.615>something <00:19:25.815>like <00:19:26.015>this <00:19:26.215>already?

456
00:19:26.755 --> 00:19:29.615
<00:19:26.755>The <00:19:26.895>answer <00:19:27.035>is <00:19:27.175>with <00:19:27.315>everything <00:19:27.455>that <00:19:27.595>I <00:19:27.735>want. <00:19:27.875>Of <00:19:28.015>course <00:19:28.155>not.

457
00:19:30.475 --> 00:19:32.575
<00:19:30.475>But <00:19:30.675>I <00:19:30.875>still <00:19:31.074>think <00:19:31.274>we <00:19:31.475>have <00:19:31.675>something <00:19:31.875>working.

458
00:19:32.635 --> 00:19:34.815
<00:19:32.635>And <00:19:32.775>to <00:19:32.915>be <00:19:33.055>honest, <00:19:33.195>I'm <00:19:33.335>going <00:19:33.475>to <00:19:33.615>be <00:19:33.754>very <00:19:33.895>boring <00:19:34.035>here

459
00:19:34.835 --> 00:19:36.575
<00:19:34.835>and <00:19:35.115>just <00:19:35.395>say <00:19:35.675>it's <00:19:35.955>the <00:19:36.235>kind

460
00:19:36.575 --> 00:19:37.735
<00:19:36.575>of <00:19:36.749>stuff <00:19:36.923>we <00:19:37.097>already <00:19:37.271>use <00:19:37.445>right <00:19:37.619>now.

461
00:19:37.755 --> 00:19:40.295
<00:19:37.755>It <00:19:37.895>kind <00:19:38.035>of <00:19:38.175>works. <00:19:38.315>Like, <00:19:38.455>I <00:19:38.595>wish <00:19:38.735>there <00:19:38.875>was <00:19:39.015>something <00:19:39.155>better

462
00:19:40.795 --> 00:19:42.255
<00:19:40.795>and <00:19:41.014>if <00:19:41.233>you <00:19:41.452>have <00:19:41.671>something, <00:19:41.890>please <00:19:42.109>come

463
00:19:42.255 --> 00:19:43.455
<00:19:42.255>to <00:19:42.525>me <00:19:42.795>afterwards, <00:19:43.065>let's <00:19:43.335>talk.

464
00:19:44.035 --> 00:19:46.935
<00:19:44.035>Um, <00:19:44.162>but <00:19:44.289>yeah, <00:19:44.416>right <00:19:44.544>now <00:19:44.671>I <00:19:44.798>would <00:19:44.925>say <00:19:45.053>if <00:19:45.180>you <00:19:45.307>have <00:19:45.435>simple

465
00:19:46.955 --> 00:19:48.615
<00:19:46.955>and <00:19:47.155>lightweight <00:19:47.355>data, <00:19:47.554>I <00:19:47.754>would <00:19:47.955>still <00:19:48.155>use <00:19:48.355>rest.

466
00:19:48.885 --> 00:19:51.175
<00:19:48.885>It's <00:19:49.085>easy. <00:19:49.285>Understandable. <00:19:49.485>Everyone <00:19:49.685>knows <00:19:49.885>how <00:19:50.085>to <00:19:50.285>edit.

467
00:19:51.235 --> 00:19:52.735
<00:19:51.235>Why <00:19:51.504>make <00:19:51.774>it <00:19:52.044>complicated <00:19:52.314>for <00:19:52.584>people?

468
00:19:53.515 --> 00:19:55.415
<00:19:53.515>If <00:19:53.690>I <00:19:53.865>have <00:19:54.040>complex <00:19:54.215>data <00:19:54.390>in <00:19:54.565>real <00:19:54.740>time <00:19:54.915>data,

469
00:19:55.695 --> 00:19:57.055
<00:19:55.695>I <00:19:56.103>often <00:19:56.511>use <00:19:56.919>graphco.

470
00:19:57.835 --> 00:19:59.735
<00:19:57.835>And <00:19:58.185>if <00:19:58.535>I <00:19:58.885>want <00:19:59.235>performance

471
00:19:59.795 --> 00:20:04.175
<00:19:59.795>or <00:19:59.922>I <00:20:00.049>want <00:20:00.176>to <00:20:00.304>like, <00:20:00.431>um, <00:20:00.558>connect <00:20:00.685>microservices, <00:20:00.813>I <00:20:00.940>go <00:20:01.067>for <00:20:01.195>grs.

472
00:20:04.175 --> 00:20:07.655
<00:20:04.175>P <00:20:04.315>uh, <00:20:04.455>pc <00:20:04.595>actually, <00:20:04.735>uh, <00:20:04.875>lately <00:20:05.014>I've <00:20:05.155>been <00:20:05.294>using <00:20:05.435>a <00:20:05.575>lot

473
00:20:07.655 --> 00:20:10.415
<00:20:07.655>of <00:20:07.810>GR <00:20:07.966>RPC, <00:20:08.121>um, <00:20:08.277>which <00:20:08.432>because <00:20:08.588>it's <00:20:08.743>just <00:20:08.899>cool, <00:20:09.055>um,

474
00:20:10.475 --> 00:20:12.695
<00:20:10.475>and <00:20:10.630>you <00:20:10.786>know, <00:20:10.941>adds <00:20:11.097>a <00:20:11.252>little <00:20:11.408>bit <00:20:11.563>of <00:20:11.719>an <00:20:11.875>edge.

475
00:20:13.965 --> 00:20:16.095
<00:20:13.965>Yeah. <00:20:14.139>So <00:20:14.314>with <00:20:14.490>that <00:20:14.665>being <00:20:14.840>said, <00:20:15.014>thank <00:20:15.189>you <00:20:15.365>very,

476
00:20:16.095 --> 00:20:17.775
<00:20:16.095>very <00:20:16.445>much <00:20:16.795>for <00:20:17.145>your <00:20:17.495>time.

477
00:20:17.775 --> 00:20:18.935
<00:20:17.775>Thank <00:20:17.949>you <00:20:18.123>very <00:20:18.297>much <00:20:18.471>for <00:20:18.645>being <00:20:18.819>here.

478
00:20:18.935 --> 00:20:21.455
<00:20:18.935>And <00:20:19.110>I <00:20:19.284>think <00:20:19.460>we <00:20:19.635>have <00:20:19.810>time <00:20:19.985>for <00:20:20.159>questions. <00:20:20.335>Perfect.