WEBVTT

1
00:00:05.100 --> 00:00:09.800
it

2
00:00:11.600 --> 00:00:11.900
hello.

3
00:00:16.100 --> 00:00:19.600
<00:00:16.100>Thank <00:00:16.240>you <00:00:16.380>for <00:00:16.520>to <00:00:16.660>the <00:00:16.800>organizers <00:00:16.940>for <00:00:17.080>this <00:00:17.220>opportunity <00:00:17.360>because <00:00:17.500>I

4
00:00:19.600 --> 00:00:22.300
<00:00:19.600>always <00:00:19.833>only <00:00:20.066>get <00:00:20.300>to <00:00:20.533>do <00:00:20.766>talks <00:00:21.000>which

5
00:00:22.300 --> 00:00:25.800
<00:00:22.300>are <00:00:22.580>about <00:00:22.860>products <00:00:23.140>or <00:00:23.420>about <00:00:23.700>deltas

6
00:00:25.800 --> 00:00:28.100
<00:00:25.800>of <00:00:25.955>products. <00:00:26.111>But <00:00:26.266>I <00:00:26.422>never <00:00:26.577>really <00:00:26.733>get <00:00:26.888>to <00:00:27.044>do <00:00:27.200>a

7
00:00:28.100 --> 00:00:31.300
<00:00:28.100>basic. <00:00:28.240>What <00:00:28.380>is <00:00:28.520>the <00:00:28.660>Q <00:00:28.800>talk? <00:00:28.940>And <00:00:29.080>so <00:00:29.220>I <00:00:29.360>put <00:00:29.500>this

8
00:00:31.300 --> 00:00:34.500
<00:00:31.300>into <00:00:31.427>the <00:00:31.554>cfp <00:00:31.681>and <00:00:31.809>they <00:00:31.936>actually <00:00:32.063>took <00:00:32.190>it <00:00:32.318>and <00:00:32.445>that <00:00:32.572>it's <00:00:32.700>fantastic.

9
00:00:35.500 --> 00:00:35.700
so

10
00:00:36.700 --> 00:00:39.200
<00:00:36.700>I <00:00:36.840>will <00:00:36.980>assume <00:00:37.120>that <00:00:37.260>none <00:00:37.400>of <00:00:37.540>you <00:00:37.680>know, <00:00:37.820>what <00:00:37.960>a <00:00:38.100>queue

11
00:00:39.200 --> 00:00:39.300
is.

12
00:00:41.300 --> 00:00:45.600
<00:00:41.300>Ah, <00:00:41.500>there <00:00:41.699>is <00:00:41.900>grumbling. <00:00:42.099>All <00:00:42.300>right, <00:00:42.500>maybe <00:00:42.699>some

13
00:00:45.600 --> 00:00:48.200
<00:00:45.600>of <00:00:45.740>you <00:00:45.880>who <00:00:46.020>know, <00:00:46.160>what <00:00:46.300>a <00:00:46.440>queue <00:00:46.580>is <00:00:46.720>will <00:00:46.860>be <00:00:47.000>able

14
00:00:48.200 --> 00:00:50.300
<00:00:48.200>to <00:00:48.355>follow <00:00:48.511>but <00:00:48.666>those <00:00:48.822>who <00:00:48.977>know <00:00:49.133>what <00:00:49.288>a <00:00:49.444>queue <00:00:49.600>is.

15
00:00:51.000 --> 00:00:51.300
are

16
00:00:53.300 --> 00:00:53.900
Messengers

17
00:00:54.700 --> 00:00:57.800
<00:00:54.700>and <00:00:54.875>I'm <00:00:55.050>going <00:00:55.225>to <00:00:55.400>trick <00:00:55.575>you <00:00:55.750>by <00:00:55.925>starting <00:00:56.100>this

18
00:00:57.800 --> 00:01:00.500
<00:00:57.800>talk <00:00:58.033>with <00:00:58.266>a <00:00:58.500>few <00:00:58.733>pictures <00:00:58.966>and <00:00:59.199>make

19
00:01:00.500 --> 00:01:01.900
<00:01:00.500>you <00:01:00.680>think <00:01:00.860>that <00:01:01.040>is <00:01:01.220>going <00:01:01.400>to <00:01:01.580>be <00:01:01.760>easy.

20
00:01:03.100 --> 00:01:05.400
<00:01:03.100>And <00:01:03.227>then <00:01:03.354>I <00:01:03.481>will <00:01:03.609>exhaust <00:01:03.736>you <00:01:03.863>towards <00:01:03.990>the <00:01:04.118>end <00:01:04.245>of <00:01:04.372>the <00:01:04.500>talk.

21
00:01:06.700 --> 00:01:07.000
so

22
00:01:08.200 --> 00:01:11.200
<00:01:08.200>Messengers <00:01:08.666>have <00:01:09.133>a <00:01:09.600>long

23
00:01:11.200 --> 00:01:11.400
history

24
00:01:12.600 --> 00:01:15.500
<00:01:12.600>And <00:01:12.833>queuing <00:01:13.066>is <00:01:13.300>the <00:01:13.533>modern <00:01:13.766>form <00:01:14.000>of

25
00:01:15.500 --> 00:01:18.200
<00:01:15.500>messaging <00:01:15.733>We <00:01:15.966>Are <00:01:16.200>The <00:01:16.433>Messengers <00:01:16.666>we <00:01:16.900>are

26
00:01:18.200 --> 00:01:21.600
<00:01:18.200>the <00:01:18.433>Postal <00:01:18.666>Service <00:01:18.900>of <00:01:19.133>it. <00:01:19.366>We <00:01:19.600>move

27
00:01:21.600 --> 00:01:24.400
<00:01:21.600>data <00:01:21.800>from <00:01:22.000>A <00:01:22.199>to <00:01:22.399>B, <00:01:22.600>and <00:01:22.800>we <00:01:23.000>do

28
00:01:24.400 --> 00:01:26.300
<00:01:24.400>so <00:01:24.575>in <00:01:24.750>envelopes <00:01:24.925>as <00:01:25.100>I <00:01:25.275>will <00:01:25.450>explain <00:01:25.625>to <00:01:25.800>you.

29
00:01:27.200 --> 00:01:27.900
<00:01:27.200>So <00:01:27.515>this <00:01:27.830>lady?

30
00:01:28.700 --> 00:01:31.300
<00:01:28.700>Who's <00:01:28.875>sending <00:01:29.050>a <00:01:29.225>love <00:01:29.400>letter, <00:01:29.575>or <00:01:29.750>just <00:01:29.925>got <00:01:30.100>one?

31
00:01:32.900 --> 00:01:33.800
<00:01:32.900>Is <00:01:33.305>the <00:01:33.710>messenger?

32
00:01:34.900 --> 00:01:37.400
<00:01:34.900>Messengers <00:01:35.133>had <00:01:35.366>an <00:01:35.600>important <00:01:35.833>role <00:01:36.066>and <00:01:36.300>still

33
00:01:37.400 --> 00:01:40.400
<00:01:37.400>have <00:01:37.540>an <00:01:37.680>important <00:01:37.820>role <00:01:37.960>in <00:01:38.100>all <00:01:38.240>kinds <00:01:38.380>of <00:01:38.520>areas <00:01:38.660>of <00:01:38.800>the

34
00:01:40.400 --> 00:01:44.000
<00:01:40.400>world <00:01:40.750>and <00:01:41.100>especially <00:01:41.450>in <00:01:41.800>earlier

35
00:01:43.500 --> 00:01:46.700
<00:01:43.500>days <00:01:43.733>kind <00:01:43.966>of <00:01:44.200>in <00:01:44.433>more <00:01:44.666>efforts. <00:01:44.900>That's

36
00:01:46.700 --> 00:01:49.100
<00:01:46.700>the <00:01:46.875>way <00:01:47.050>how <00:01:47.225>communication <00:01:47.400>happened <00:01:47.575>like <00:01:47.750>in <00:01:47.925>this <00:01:48.100>first

37
00:01:49.100 --> 00:01:52.500
<00:01:49.100>world <00:01:49.240>war. <00:01:49.380>For <00:01:49.520>instance. <00:01:49.660>This <00:01:49.800>is <00:01:49.940>a <00:01:50.080>soldier <00:01:50.220>a <00:01:50.360>French <00:01:50.500>soldier

38
00:01:52.500 --> 00:01:56.100
<00:01:52.500>holding <00:01:52.640>a <00:01:52.780>carrier <00:01:52.920>pigeon. <00:01:53.060>That <00:01:53.200>was <00:01:53.340>the <00:01:53.480>way <00:01:53.620>you <00:01:53.760>communicated <00:01:53.900>you

39
00:01:55.100 --> 00:01:56.900
<00:01:55.100>communicate <00:01:56.500>it.

40
00:01:58.300 --> 00:02:01.600
<00:01:58.300>Asynchronously <00:01:58.766>obviously <00:01:59.233>because <00:01:59.700>the

41
00:02:01.600 --> 00:02:03.500
<00:02:01.600>carrier <00:02:01.833>pigeon <00:02:02.066>would <00:02:02.300>only <00:02:02.533>go <00:02:02.766>one <00:02:03.000>way.

42
00:02:04.300 --> 00:02:07.800
<00:02:04.300>And <00:02:04.500>you <00:02:04.700>would <00:02:04.899>kind <00:02:05.100>of <00:02:05.300>semi <00:02:05.500>reliably <00:02:05.700>communicate

43
00:02:07.800 --> 00:02:09.800
<00:02:07.800>because <00:02:08.000>the <00:02:08.199>pigeon <00:02:08.400>might <00:02:08.600>get <00:02:08.799>shot <00:02:09.000>or <00:02:09.199>eaten.

44
00:02:13.900 --> 00:02:14.200
<00:02:13.900>Postal <00:02:14.170>Service

45
00:02:15.800 --> 00:02:16.100
was

46
00:02:17.200 --> 00:02:20.400
<00:02:17.200>Effectively <00:02:17.355>in <00:02:17.511>the <00:02:17.666>initially <00:02:17.822>what <00:02:17.977>made <00:02:18.133>the <00:02:18.288>world <00:02:18.444>smaller <00:02:18.600>at

47
00:02:20.400 --> 00:02:24.300
<00:02:20.400>we <00:02:20.527>had <00:02:20.654>telegraphs <00:02:20.781>Etc. <00:02:20.909>But <00:02:21.036>if <00:02:21.163>you <00:02:21.290>have <00:02:21.418>more <00:02:21.545>substantial <00:02:21.672>data <00:02:21.800>the

48
00:02:23.300 --> 00:02:26.600
<00:02:23.300>highest <00:02:24.000>throughput <00:02:24.700>the

49
00:02:26.600 --> 00:02:29.700
<00:02:26.600>most <00:02:26.833>data <00:02:27.066>you <00:02:27.299>could <00:02:27.533>send <00:02:27.766>was <00:02:28.000>done

50
00:02:29.700 --> 00:02:32.800
<00:02:29.700>through <00:02:29.899>mail <00:02:30.100>and <00:02:30.299>then <00:02:30.500>eventually <00:02:30.700>through <00:02:30.899>airmail. <00:02:31.100>So

51
00:02:32.800 --> 00:02:33.900
<00:02:32.800>these <00:02:33.130>were <00:02:33.460>all <00:02:33.790>Messengers.

52
00:02:36.100 --> 00:02:39.200
<00:02:36.100>And <00:02:36.216>then <00:02:36.333>of <00:02:36.450>course, <00:02:36.566>we <00:02:36.683>have <00:02:36.799>Telegraph <00:02:36.916>services <00:02:37.033>and <00:02:37.150>then <00:02:37.266>we <00:02:37.383>also <00:02:37.500>have

53
00:02:39.200 --> 00:02:42.600
<00:02:39.200>a <00:02:39.375>combination <00:02:39.549>of <00:02:39.725>telegraph <00:02:39.899>services <00:02:40.075>and <00:02:40.250>motor <00:02:40.424>carriers <00:02:40.600>which

54
00:02:42.600 --> 00:02:45.300
<00:02:42.600>means <00:02:42.833>messages <00:02:43.066>were <00:02:43.299>transmitted <00:02:43.533>from <00:02:43.766>post <00:02:44.000>office

55
00:02:45.300 --> 00:02:49.400
<00:02:45.300>to <00:02:45.475>post <00:02:45.650>office <00:02:45.825>because <00:02:46.000>that's <00:02:46.175>where <00:02:46.350>the <00:02:46.525>electronic <00:02:46.700>equipment

56
00:02:49.400 --> 00:02:52.600
<00:02:49.400>was <00:02:49.555>or <00:02:49.711>electric <00:02:49.866>equipment <00:02:50.022>was <00:02:50.177>and <00:02:50.333>then <00:02:50.488>messages <00:02:50.644>were <00:02:50.800>written

57
00:02:52.600 --> 00:02:55.300
<00:02:52.600>down <00:02:52.833>on <00:02:53.066>telegrams <00:02:53.299>and <00:02:53.533>those <00:02:53.766>telegrams <00:02:54.000>were

58
00:02:55.300 --> 00:02:58.900
<00:02:55.300>then <00:02:55.475>delivered <00:02:55.650>by <00:02:55.825>mail <00:02:56.000>all <00:02:56.175>of <00:02:56.350>that <00:02:56.525>asynchronously <00:02:56.700>because

59
00:02:58.900 --> 00:03:01.600
<00:02:58.900>that <00:02:59.133>was <00:02:59.366>the <00:02:59.600>way <00:02:59.833>how <00:03:00.066>things <00:03:00.300>worked

60
00:03:01.600 --> 00:03:04.300
<00:03:01.600>right? <00:03:01.739>You <00:03:01.880>send <00:03:02.019>you <00:03:02.160>send <00:03:02.299>a <00:03:02.440>letter <00:03:02.579>and <00:03:02.720>again <00:03:02.859>a <00:03:03.000>letter

61
00:03:04.300 --> 00:03:07.400
<00:03:04.300>back <00:03:04.475>the <00:03:04.650>nice <00:03:04.825>thing <00:03:05.000>about <00:03:05.175>this <00:03:05.350>about <00:03:05.525>these <00:03:05.700>asynchrony.

62
00:03:08.600 --> 00:03:10.400
<00:03:08.600>Is <00:03:09.066>that <00:03:09.533>it's <00:03:10.000>scales?

63
00:03:11.200 --> 00:03:15.800
<00:03:11.200>We <00:03:11.399>have <00:03:11.600>learned <00:03:11.799>over <00:03:12.000>very <00:03:12.200>long <00:03:12.399>time <00:03:12.600>humanity

64
00:03:14.800 --> 00:03:17.700
<00:03:14.800>has <00:03:15.150>learned <00:03:15.500>over <00:03:15.850>a <00:03:16.200>very

65
00:03:17.700 --> 00:03:20.800
<00:03:17.700>long <00:03:17.899>time <00:03:18.100>how <00:03:18.299>to <00:03:18.500>scale <00:03:18.700>communication <00:03:18.899>using <00:03:19.100>a

66
00:03:20.800 --> 00:03:21.900
<00:03:20.800>synchronous <00:03:21.790>messaging.

67
00:03:24.700 --> 00:03:27.000
<00:03:24.700>And <00:03:24.980>in <00:03:25.260>Computing, <00:03:25.540>it's <00:03:25.820>kind <00:03:26.100>of

68
00:03:27.300 --> 00:03:28.900
<00:03:27.300>a <00:03:27.500>lost <00:03:27.700>art <00:03:27.900>and <00:03:28.100>it's <00:03:28.300>a <00:03:28.500>little <00:03:28.700>sad.

69
00:03:31.300 --> 00:03:34.700
<00:03:31.300>Cues <00:03:31.500>are <00:03:31.700>also <00:03:31.900>not <00:03:32.100>something <00:03:32.300>that <00:03:32.500>is <00:03:32.700>foreign.

70
00:03:36.100 --> 00:03:39.400
<00:03:36.100>To <00:03:36.216>none <00:03:36.333>of <00:03:36.450>you <00:03:36.566>who <00:03:36.683>just <00:03:36.799>showed <00:03:36.916>up <00:03:37.033>at <00:03:37.150>this <00:03:37.266>conference <00:03:37.383>this <00:03:37.500>morning

71
00:03:39.400 --> 00:03:42.400
<00:03:39.400>because <00:03:39.633>I <00:03:39.866>was <00:03:40.100>able <00:03:40.333>to <00:03:40.566>go <00:03:40.800>through

72
00:03:42.400 --> 00:03:44.000
<00:03:42.400>the <00:03:42.750>fast <00:03:43.100>lane. <00:03:43.450>I'm <00:03:43.800>sorry.

73
00:03:45.600 --> 00:03:48.500
<00:03:45.600>But <00:03:45.775>many <00:03:45.950>of <00:03:46.125>you <00:03:46.299>weren't <00:03:46.475>so <00:03:46.650>you <00:03:46.825>stood <00:03:47.000>in

74
00:03:48.500 --> 00:03:48.800
<00:03:48.500>the <00:03:48.770>queue.

75
00:03:49.900 --> 00:03:52.500
<00:03:49.900>And <00:03:50.040>that's <00:03:50.180>the <00:03:50.320>only <00:03:50.460>way <00:03:50.600>how <00:03:50.740>he <00:03:50.880>can <00:03:51.020>make <00:03:51.160>the <00:03:51.300>registration

76
00:03:52.500 --> 00:03:53.600
<00:03:52.500>desk <00:03:53.490>scale.

77
00:03:54.200 --> 00:03:55.700
<00:03:54.200>Because <00:03:54.537>it <00:03:54.875>doesn't <00:03:55.212>make <00:03:55.549>sense.

78
00:03:56.600 --> 00:03:59.200
<00:03:56.600>It <00:03:56.775>would <00:03:56.950>be <00:03:57.125>nice <00:03:57.299>but <00:03:57.475>it <00:03:57.650>doesn't <00:03:57.825>make <00:03:58.000>sense

79
00:03:59.200 --> 00:04:02.200
<00:03:59.200>to <00:03:59.355>have <00:03:59.511>a <00:03:59.666>thousand <00:03:59.822>people <00:03:59.977>sending <00:04:00.133>that <00:04:00.288>the <00:04:00.444>registration <00:04:00.600>desk

80
00:04:02.200 --> 00:04:05.600
<00:04:02.200>you <00:04:02.327>have <00:04:02.454>to <00:04:02.581>scale <00:04:02.709>it <00:04:02.836>to <00:04:02.963>some <00:04:03.090>level <00:04:03.218>and <00:04:03.345>then <00:04:03.472>you <00:04:03.600>know

81
00:04:05.600 --> 00:04:08.400
<00:04:05.600>the <00:04:05.727>cues <00:04:05.854>how <00:04:05.981>to <00:04:06.109>make <00:04:06.236>how <00:04:06.363>to <00:04:06.490>make <00:04:06.618>that <00:04:06.745>all <00:04:06.872>work <00:04:07.000>so

82
00:04:08.400 --> 00:04:09.300
cues.

83
00:04:10.200 --> 00:04:11.700
<00:04:10.200>Like <00:04:10.470>you <00:04:10.739>were <00:04:11.010>on <00:04:11.280>a <00:04:11.549>cue.

84
00:04:12.800 --> 00:04:15.600
<00:04:12.800>That's <00:04:13.000>how <00:04:13.200>you <00:04:13.400>create <00:04:13.600>scalability. <00:04:13.800>That <00:04:14.000>is <00:04:14.200>how

85
00:04:15.600 --> 00:04:18.300
<00:04:15.600>you <00:04:15.880>manage <00:04:16.159>a <00:04:16.440>small <00:04:16.719>set <00:04:17.000>of

86
00:04:18.300 --> 00:04:18.500
resources.

87
00:04:20.200 --> 00:04:23.800
<00:04:20.200>20 <00:04:20.355>people <00:04:20.511>doing <00:04:20.666>a <00:04:20.822>registration <00:04:20.977>at <00:04:21.133>a <00:04:21.288>registration <00:04:21.444>desk <00:04:21.599>and

88
00:04:23.800 --> 00:04:26.500
<00:04:23.800>deal <00:04:24.266>with <00:04:24.733>5,000 <00:04:25.200>requests

89
00:04:26.500 --> 00:04:29.400
<00:04:26.500>to <00:04:26.780>those <00:04:27.060>resources <00:04:27.340>you <00:04:27.620>queue <00:04:27.900>up

90
00:04:29.400 --> 00:04:32.400
<00:04:29.400>and <00:04:29.527>you <00:04:29.654>naturally <00:04:29.781>know <00:04:29.909>how <00:04:30.036>to <00:04:30.163>do <00:04:30.290>this <00:04:30.418>because <00:04:30.545>you <00:04:30.672>all <00:04:30.799>did

91
00:04:32.400 --> 00:04:32.500
it.

92
00:04:35.200 --> 00:04:38.700
<00:04:35.200>The <00:04:35.400>same <00:04:35.599>organization <00:04:35.800>happens <00:04:36.000>pretty <00:04:36.200>much <00:04:36.400>everywhere <00:04:36.599>in

93
00:04:38.700 --> 00:04:41.500
<00:04:38.700>life. <00:04:38.933>We <00:04:39.166>have <00:04:39.400>airports <00:04:39.633>that <00:04:39.866>queue <00:04:40.099>up

94
00:04:41.500 --> 00:04:43.100
<00:04:41.500>airplanes <00:04:42.200>for <00:04:42.900>departure.

95
00:04:44.900 --> 00:04:47.100
<00:04:44.900>They <00:04:45.055>have <00:04:45.211>to <00:04:45.366>do <00:04:45.522>that <00:04:45.677>because <00:04:45.833>airports <00:04:45.988>need <00:04:46.144>to <00:04:46.299>have

96
00:04:47.100 --> 00:04:50.400
<00:04:47.100>a <00:04:47.240>Runway <00:04:47.380>aircraft <00:04:47.520>need <00:04:47.660>to <00:04:47.800>have <00:04:47.940>a <00:04:48.080>Runway <00:04:48.220>and <00:04:48.360>there's <00:04:48.500>only

97
00:04:50.400 --> 00:04:53.200
<00:04:50.400>one <00:04:50.516>or <00:04:50.633>two, <00:04:50.750>which <00:04:50.866>means <00:04:50.983>they <00:04:51.099>need <00:04:51.216>to <00:04:51.333>share <00:04:51.450>it. <00:04:51.566>It's <00:04:51.683>a <00:04:51.799>shared

98
00:04:53.200 --> 00:04:54.800
<00:04:53.200>resource. <00:04:53.666>Therefore <00:04:54.133>we <00:04:54.599>queue.

99
00:04:56.500 --> 00:04:58.300
<00:04:56.500>And <00:04:56.675>of <00:04:56.850>course <00:04:57.025>you <00:04:57.200>all <00:04:57.375>know <00:04:57.550>this <00:04:57.725>from <00:04:57.900>traffic.

100
00:04:59.900 --> 00:05:02.700
<00:04:59.900>right <00:05:00.027>if <00:05:00.154>you <00:05:00.281>want <00:05:00.409>to <00:05:00.536>go <00:05:00.663>from <00:05:00.790>A <00:05:00.918>to <00:05:01.045>B, <00:05:01.172>there <00:05:01.299>is

101
00:05:02.700 --> 00:05:02.800
not

102
00:05:04.100 --> 00:05:07.400
<00:05:04.100>Asphalt <00:05:04.333>covering <00:05:04.566>the <00:05:04.800>entire <00:05:05.033>space <00:05:05.266>so <00:05:05.500>you

103
00:05:07.400 --> 00:05:10.600
<00:05:07.400>can <00:05:07.516>just <00:05:07.633>go <00:05:07.750>and <00:05:07.866>drive. <00:05:07.983>No <00:05:08.099>there <00:05:08.216>are <00:05:08.333>roads <00:05:08.450>and <00:05:08.566>if <00:05:08.683>the <00:05:08.799>roads

104
00:05:10.600 --> 00:05:13.400
<00:05:10.600>are <00:05:10.740>over <00:05:10.880>tax, <00:05:11.020>if <00:05:11.160>there <00:05:11.300>are <00:05:11.440>too <00:05:11.580>many <00:05:11.720>cars <00:05:11.860>cues <00:05:12.000>form

105
00:05:13.400 --> 00:05:16.100
<00:05:13.400>to <00:05:13.516>get <00:05:13.633>you <00:05:13.750>from <00:05:13.866>one <00:05:13.983>place <00:05:14.099>to <00:05:14.216>the <00:05:14.333>next <00:05:14.450>so <00:05:14.566>it's <00:05:14.683>a <00:05:14.799>natural

106
00:05:16.100 --> 00:05:17.200
<00:05:16.100>way <00:05:16.298>of <00:05:16.496>how <00:05:16.694>we <00:05:16.892>do <00:05:17.090>things.

107
00:05:19.400 --> 00:05:19.700
However

108
00:05:22.200 --> 00:05:26.100
<00:05:22.200>Many <00:05:22.375>of <00:05:22.550>us <00:05:22.724>are <00:05:22.900>not <00:05:23.075>using <00:05:23.250>cues <00:05:23.425>explicitly <00:05:23.599>in

109
00:05:25.100 --> 00:05:27.800
<00:05:25.100>Computing <00:05:25.333>systems, <00:05:25.566>and <00:05:25.800>that's <00:05:26.033>kind <00:05:26.266>of <00:05:26.500>funny.

110
00:05:29.400 --> 00:05:32.200
<00:05:29.400>So <00:05:29.555>I <00:05:29.711>will <00:05:29.866>talk <00:05:30.022>about <00:05:30.177>message <00:05:30.333>cues. <00:05:30.488>I <00:05:30.644>will <00:05:30.799>talk

111
00:05:32.200 --> 00:05:35.400
<00:05:32.200>about <00:05:32.340>cues <00:05:32.479>first <00:05:32.620>and <00:05:32.760>we'll <00:05:32.900>talk <00:05:33.039>about <00:05:33.180>message <00:05:33.320>cues <00:05:33.460>and <00:05:33.599>then

112
00:05:35.400 --> 00:05:38.300
<00:05:35.400>I <00:05:35.599>will <00:05:35.799>go <00:05:36.000>into <00:05:36.200>some <00:05:36.400>feature <00:05:36.599>survey <00:05:36.799>which

113
00:05:38.300 --> 00:05:42.100
<00:05:38.300>I <00:05:38.427>will <00:05:38.554>anchor <00:05:38.681>on <00:05:38.809>the <00:05:38.936>products <00:05:39.063>that <00:05:39.190>my <00:05:39.318>team <00:05:39.445>builds, <00:05:39.572>but <00:05:39.700>all

114
00:05:41.100 --> 00:05:44.400
<00:05:41.100>the <00:05:41.227>knowledge <00:05:41.354>that <00:05:41.481>I'm <00:05:41.609>going <00:05:41.736>to <00:05:41.863>give <00:05:41.990>you <00:05:42.118>today <00:05:42.245>is <00:05:42.372>usable <00:05:42.500>for

115
00:05:44.400 --> 00:05:48.500
<00:05:44.400>AWS <00:05:44.633>for <00:05:44.866>Google <00:05:45.099>Cloud <00:05:45.333>for <00:05:45.566>rabbitmq <00:05:45.799>for

116
00:05:48.500 --> 00:05:51.000
<00:05:48.500>any <00:05:48.640>of <00:05:48.780>those <00:05:48.920>any <00:05:49.060>of <00:05:49.200>those <00:05:49.340>Services. <00:05:49.480>I'm <00:05:49.620>not <00:05:49.760>going <00:05:49.900>to

117
00:05:51.100 --> 00:05:54.100
<00:05:51.100>do <00:05:51.216>a <00:05:51.333>product <00:05:51.450>pitch <00:05:51.566>here, <00:05:51.683>but <00:05:51.800>I <00:05:51.916>really <00:05:52.033>want <00:05:52.150>to <00:05:52.266>teach <00:05:52.383>you <00:05:52.500>what

118
00:05:54.100 --> 00:05:55.700
<00:05:54.100>a <00:05:54.300>queue <00:05:54.500>is <00:05:54.700>and <00:05:54.900>what <00:05:55.100>the <00:05:55.300>features <00:05:55.500>are.

119
00:05:56.900 --> 00:05:59.300
<00:05:56.900>All <00:05:57.099>right. <00:05:57.299>I'm <00:05:57.500>going <00:05:57.700>to <00:05:57.900>start <00:05:58.099>in <00:05:58.299>a

120
00:05:59.300 --> 00:06:00.100
<00:05:59.300>very <00:05:59.660>unusual <00:06:00.020>place.

121
00:06:01.100 --> 00:06:01.300
here

122
00:06:03.800 --> 00:06:06.800
<00:06:03.800>most <00:06:04.033>of <00:06:04.266>you <00:06:04.500>most <00:06:04.733>of <00:06:04.966>most <00:06:05.200>developers

123
00:06:06.800 --> 00:06:09.800
<00:06:06.800>that <00:06:07.033>that <00:06:07.266>deal <00:06:07.500>with <00:06:07.733>applications <00:06:07.966>have <00:06:08.200>a

124
00:06:09.800 --> 00:06:11.900
<00:06:09.800>notion <00:06:10.080>of <00:06:10.360>implementing <00:06:10.640>a <00:06:10.920>function <00:06:11.200>call.

125
00:06:13.400 --> 00:06:15.200
<00:06:13.400>And <00:06:13.599>never <00:06:13.799>mind <00:06:14.000>the <00:06:14.200>shape <00:06:14.400>of <00:06:14.599>this <00:06:14.799>here.

126
00:06:15.900 --> 00:06:17.600
<00:06:15.900>Right. <00:06:16.099>It's <00:06:16.299>not <00:06:16.500>important <00:06:16.700>that <00:06:16.900>this <00:06:17.099>is <00:06:17.299>a

127
00:06:18.900 --> 00:06:21.300
<00:06:18.900>C <00:06:19.179>function <00:06:19.460>or <00:06:19.739>could <00:06:20.020>be <00:06:20.299>C

128
00:06:21.300 --> 00:06:24.500
<00:06:21.300>sharp <00:06:21.455>function <00:06:21.611>or <00:06:21.766>could <00:06:21.922>be <00:06:22.077>a <00:06:22.233>Java <00:06:22.388>function? <00:06:22.544>It <00:06:22.700>doesn't

129
00:06:24.500 --> 00:06:27.500
<00:06:24.500>matter. <00:06:24.675>It <00:06:24.850>has <00:06:25.025>has <00:06:25.200>curly <00:06:25.375>brackets <00:06:25.550>and <00:06:25.725>you <00:06:25.900>might

130
00:06:27.500 --> 00:06:30.300
<00:06:27.500>be <00:06:27.655>a <00:06:27.811>full <00:06:27.966>of <00:06:28.122>curly <00:06:28.277>brackets. <00:06:28.433>It <00:06:28.588>doesn't <00:06:28.744>matter. <00:06:28.900>It's

131
00:06:30.300 --> 00:06:30.700
<00:06:30.300>a <00:06:30.659>function.

132
00:06:32.600 --> 00:06:35.900
<00:06:32.600>That <00:06:32.880>function <00:06:33.160>translates <00:06:33.440>into <00:06:33.720>some <00:06:34.000>machine

133
00:06:35.900 --> 00:06:36.300
code.

134
00:06:37.700 --> 00:06:42.300
<00:06:37.700>here <00:06:37.979>chosen <00:06:38.260>the <00:06:38.539>Intel <00:06:38.820>x86 <00:06:39.099>x64

135
00:06:40.300 --> 00:06:43.500
<00:06:40.300>machine <00:06:41.700>code

136
00:06:44.300 --> 00:06:47.400
<00:06:44.300>So <00:06:44.533>this <00:06:44.766>function <00:06:45.000>translates <00:06:45.233>into <00:06:45.466>that <00:06:45.700>machine

137
00:06:47.400 --> 00:06:49.400
<00:06:47.400>code? <00:06:47.599>Why <00:06:47.799>do <00:06:48.000>I <00:06:48.200>choose <00:06:48.400>machine <00:06:48.599>code <00:06:48.799>because

138
00:06:50.400 --> 00:06:52.300
<00:06:50.400>I <00:06:50.539>just <00:06:50.679>want <00:06:50.820>to <00:06:50.960>talk <00:06:51.099>about <00:06:51.239>the <00:06:51.380>CPU <00:06:51.520>a <00:06:51.659>little <00:06:51.799>bit.

139
00:06:53.900 --> 00:06:57.200
<00:06:53.900>So <00:06:54.075>what <00:06:54.250>happens <00:06:54.424>when <00:06:54.599>you <00:06:54.775>go <00:06:54.950>and <00:06:55.125>compile <00:06:55.299>this

140
00:06:57.200 --> 00:07:00.400
<00:06:57.200>code <00:06:57.375>into <00:06:57.550>that <00:06:57.724>machine <00:06:57.900>code <00:06:58.075>which <00:06:58.250>then <00:06:58.425>translates <00:06:58.599>really

141
00:07:00.400 --> 00:07:03.300
<00:07:00.400>into <00:07:00.539>bits <00:07:00.679>that <00:07:00.820>you <00:07:00.960>can <00:07:01.099>go <00:07:01.239>and <00:07:01.380>run <00:07:01.520>on <00:07:01.659>the <00:07:01.799>CPU.

142
00:07:03.300 --> 00:07:04.600
<00:07:03.300>How <00:07:03.592>do <00:07:03.885>you <00:07:04.177>execute <00:07:04.470>that?

143
00:07:06.800 --> 00:07:08.200
<00:07:06.800>You <00:07:07.052>give <00:07:07.304>it <00:07:07.556>to <00:07:07.808>the <00:07:08.060>CPU?

144
00:07:09.100 --> 00:07:10.500
<00:07:09.100>How <00:07:09.280>do <00:07:09.460>you <00:07:09.640>give <00:07:09.820>it <00:07:10.000>to <00:07:10.180>the <00:07:10.360>CPU?

145
00:07:12.900 --> 00:07:14.100
<00:07:12.900>You <00:07:13.169>put <00:07:13.440>it <00:07:13.710>into <00:07:13.980>queues.

146
00:07:15.100 --> 00:07:18.600
<00:07:15.100>The <00:07:15.255>way <00:07:15.411>how <00:07:15.566>the <00:07:15.722>scheduler <00:07:15.877>in <00:07:16.033>your <00:07:16.188>operating <00:07:16.344>system <00:07:16.500>works.

147
00:07:20.300 --> 00:07:22.500
<00:07:20.300>Is <00:07:20.580>that <00:07:20.860>there <00:07:21.140>are <00:07:21.420>many <00:07:21.700>programs.

148
00:07:23.400 --> 00:07:26.200
<00:07:23.400>And <00:07:23.575>those <00:07:23.750>many <00:07:23.924>programs <00:07:24.099>need <00:07:24.275>to <00:07:24.450>be <00:07:24.625>executed <00:07:24.799>somehow.

149
00:07:26.900 --> 00:07:28.300
<00:07:26.900>There <00:07:27.320>is <00:07:27.740>one <00:07:28.160>CPU.

150
00:07:29.200 --> 00:07:30.400
<00:07:29.200>Maybe <00:07:29.469>there <00:07:29.740>are <00:07:30.010>two <00:07:30.280>CPUs.

151
00:07:31.200 --> 00:07:34.300
<00:07:31.200>There's <00:07:31.375>one <00:07:31.550>core <00:07:31.724>well <00:07:31.900>in <00:07:32.075>reality, <00:07:32.250>even <00:07:32.425>on <00:07:32.599>our

152
00:07:34.300 --> 00:07:35.500
<00:07:34.300>phones, <00:07:34.570>there's <00:07:34.840>no <00:07:35.110>four <00:07:35.380>cores.

153
00:07:36.100 --> 00:07:40.100
<00:07:36.100>But <00:07:36.275>it's <00:07:36.450>a <00:07:36.625>constraint <00:07:36.800>set <00:07:36.975>of <00:07:37.150>compute <00:07:37.325>resources <00:07:37.500>and

154
00:07:39.100 --> 00:07:42.300
<00:07:39.100>the <00:07:39.275>way <00:07:39.450>how <00:07:39.625>the <00:07:39.800>operating <00:07:39.975>system <00:07:40.150>deals <00:07:40.325>with <00:07:40.500>them.

155
00:07:42.300 --> 00:07:45.400
<00:07:42.300>Is <00:07:42.455>it <00:07:42.611>goes <00:07:42.766>and <00:07:42.922>puts <00:07:43.077>the <00:07:43.233>jobs <00:07:43.388>into <00:07:43.544>a <00:07:43.700>queue?

156
00:07:45.400 --> 00:07:47.500
<00:07:45.400>What <00:07:45.599>does <00:07:45.799>it <00:07:46.000>do? <00:07:46.200>There's <00:07:46.400>a <00:07:46.599>job <00:07:46.799>queue.

157
00:07:48.600 --> 00:07:50.300
<00:07:48.600>Where <00:07:48.800>when <00:07:49.000>you <00:07:49.200>want <00:07:49.400>to <00:07:49.600>execute <00:07:49.800>a <00:07:50.000>program?

158
00:07:51.400 --> 00:07:54.400
<00:07:51.400>More <00:07:51.516>precisely <00:07:51.633>if <00:07:51.750>you <00:07:51.866>want <00:07:51.983>to <00:07:52.099>go <00:07:52.216>and <00:07:52.333>execute <00:07:52.450>a <00:07:52.566>thread <00:07:52.683>of <00:07:52.799>a

159
00:07:54.400 --> 00:07:54.500
program.

160
00:07:55.500 --> 00:07:58.100
<00:07:55.500>Then <00:07:55.640>you <00:07:55.780>put <00:07:55.920>that <00:07:56.060>thread <00:07:56.200>into <00:07:56.340>the <00:07:56.480>job <00:07:56.620>queue <00:07:56.760>and <00:07:56.900>say

161
00:07:58.100 --> 00:08:01.700
<00:07:58.100>hey, <00:07:58.240>can <00:07:58.380>you <00:07:58.520>go <00:07:58.660>and <00:07:58.800>execute <00:07:58.940>that <00:07:59.080>for <00:07:59.220>me <00:07:59.360>what <00:07:59.500>the

162
00:08:01.700 --> 00:08:04.100
<00:08:01.700>scheduler <00:08:01.816>will <00:08:01.933>do <00:08:02.050>and <00:08:02.166>that's <00:08:02.283>what <00:08:02.400>it's <00:08:02.516>called <00:08:02.633>scheduler <00:08:02.750>is <00:08:02.866>it's <00:08:02.983>going <00:08:03.099>to

163
00:08:04.100 --> 00:08:07.500
<00:08:04.100>go <00:08:04.207>and <00:08:04.315>give <00:08:04.423>you <00:08:04.530>a <00:08:04.638>slice <00:08:04.746>of <00:08:04.853>time <00:08:04.961>in <00:08:05.069>which <00:08:05.176>you <00:08:05.284>get <00:08:05.392>that <00:08:05.500>core.

164
00:08:08.400 --> 00:08:11.900
<00:08:08.400>And <00:08:08.539>during <00:08:08.679>that <00:08:08.820>slice <00:08:08.960>of <00:08:09.099>time <00:08:09.239>you <00:08:09.380>get <00:08:09.520>to <00:08:09.659>execute <00:08:09.799>execute

165
00:08:11.900 --> 00:08:14.400
<00:08:11.900>execute <00:08:12.179>these <00:08:12.460>instructions <00:08:12.739>and <00:08:13.020>at <00:08:13.299>some

166
00:08:14.400 --> 00:08:17.300
<00:08:14.400>point <00:08:14.575>the <00:08:14.750>schedule <00:08:14.924>will <00:08:15.099>yank <00:08:15.275>that <00:08:15.450>that <00:08:15.625>from <00:08:15.799>you?

167
00:08:18.800 --> 00:08:21.200
<00:08:18.800>That <00:08:19.033>control <00:08:19.266>right <00:08:19.500>and <00:08:19.733>we'll <00:08:19.966>put <00:08:20.200>another

168
00:08:21.200 --> 00:08:21.800
<00:08:21.200>thread <00:08:21.470>in <00:08:21.740>there.

169
00:08:23.200 --> 00:08:26.500
<00:08:23.200>The <00:08:23.300>job <00:08:23.400>queue <00:08:23.500>is <00:08:23.599>how <00:08:23.700>you <00:08:23.800>get <00:08:23.900>in <00:08:24.000>line. <00:08:24.099>And <00:08:24.200>then <00:08:24.300>there <00:08:24.400>is <00:08:24.500>already <00:08:24.599>queue

170
00:08:26.500 --> 00:08:29.200
<00:08:26.500>which <00:08:26.675>is <00:08:26.850>for <00:08:27.025>all <00:08:27.200>the <00:08:27.375>threats <00:08:27.550>that <00:08:27.725>have <00:08:27.900>already

171
00:08:29.200 --> 00:08:32.500
<00:08:29.200>been <00:08:29.400>loaded <00:08:29.599>and <00:08:29.800>which <00:08:30.000>are <00:08:30.200>already <00:08:30.400>passed <00:08:30.599>have

172
00:08:32.500 --> 00:08:35.400
<00:08:32.500>information <00:08:32.640>in <00:08:32.780>the <00:08:32.919>cash <00:08:33.059>because <00:08:33.200>you <00:08:33.340>need <00:08:33.480>to <00:08:33.620>be <00:08:33.760>close <00:08:33.900>to

173
00:08:35.400 --> 00:08:38.500
<00:08:35.400>the <00:08:35.527>CPU. <00:08:35.654>You <00:08:35.781>have <00:08:35.909>to <00:08:36.036>have <00:08:36.163>you <00:08:36.290>have <00:08:36.418>memory <00:08:36.545>information <00:08:36.672>in <00:08:36.799>the

174
00:08:38.500 --> 00:08:40.900
<00:08:38.500>cash <00:08:38.674>of <00:08:38.850>the <00:08:39.025>CPU. <00:08:39.200>So <00:08:39.375>you <00:08:39.549>ready <00:08:39.725>to <00:08:39.900>execute

175
00:08:41.800 --> 00:08:44.000
<00:08:41.799>As <00:08:41.955>soon <00:08:42.111>as <00:08:42.266>you <00:08:42.422>do, <00:08:42.577>so <00:08:42.733>that's <00:08:42.888>the <00:08:43.044>second <00:08:43.199>queue.

176
00:08:44.700 --> 00:08:47.300
<00:08:44.700>So <00:08:44.875>there's <00:08:45.050>a <00:08:45.225>drop <00:08:45.400>queue. <00:08:45.575>There's <00:08:45.750>already <00:08:45.925>queue. <00:08:46.100>The

177
00:08:47.300 --> 00:08:50.600
<00:08:47.300>third <00:08:47.474>queue <00:08:47.650>is <00:08:47.824>the <00:08:48.000>ioq <00:08:48.175>whenever <00:08:48.349>you <00:08:48.525>do <00:08:48.699>I/O

178
00:08:50.600 --> 00:08:53.800
<00:08:50.600>something <00:08:50.775>that's <00:08:50.950>far <00:08:51.125>away <00:08:51.300>from <00:08:51.475>the <00:08:51.650>processor <00:08:51.825>far <00:08:52.000>away

179
00:08:53.800 --> 00:08:56.300
<00:08:53.800>from <00:08:53.974>the <00:08:54.150>core. <00:08:54.324>You <00:08:54.500>need <00:08:54.675>to <00:08:54.849>wait <00:08:55.025>and <00:08:55.199>while

180
00:08:56.300 --> 00:08:59.500
<00:08:56.300>you <00:08:56.439>wait <00:08:56.579>the <00:08:56.719>processor <00:08:56.859>can <00:08:57.000>do <00:08:57.140>something <00:08:57.280>else. <00:08:57.420>What <00:08:57.560>is <00:08:57.699>IO

181
00:09:00.600 --> 00:09:02.100
<00:09:00.600>Io <00:09:00.825>for <00:09:01.050>instance <00:09:01.275>is <00:09:01.500>main <00:09:01.725>memory <00:09:01.950>access.

182
00:09:03.500 --> 00:09:05.300
<00:09:03.500>Main <00:09:03.700>memory <00:09:03.900>access <00:09:04.100>is <00:09:04.300>a <00:09:04.500>hundred <00:09:04.700>times <00:09:04.900>slower.

183
00:09:06.100 --> 00:09:07.800
<00:09:06.100>Than <00:09:06.450>accessing <00:09:06.800>the <00:09:07.150>local <00:09:07.500>cache.

184
00:09:08.500 --> 00:09:09.900
<00:09:08.500>and <00:09:08.920>of <00:09:09.340>course <00:09:09.760>accessing

185
00:09:10.700 --> 00:09:13.600
<00:09:10.700>A <00:09:10.980>disc <00:09:11.260>in <00:09:11.540>SSD <00:09:11.820>even <00:09:12.100>the

186
00:09:13.600 --> 00:09:16.800
<00:09:13.600>network <00:09:13.950>takes <00:09:14.300>thousands <00:09:14.650>tens <00:09:15.000>of

187
00:09:16.800 --> 00:09:19.600
<00:09:16.800>thousands <00:09:17.033>of <00:09:17.266>times <00:09:17.500>more <00:09:17.733>time <00:09:17.966>than <00:09:18.199>accessing

188
00:09:19.600 --> 00:09:20.700
<00:09:19.600>the <00:09:19.847>local <00:09:20.095>cache. <00:09:20.342>Which <00:09:20.590>means

189
00:09:21.600 --> 00:09:24.600
<00:09:21.600>As <00:09:21.755>soon <00:09:21.911>as <00:09:22.066>the <00:09:22.222>thread <00:09:22.377>tries <00:09:22.533>to <00:09:22.688>reach <00:09:22.844>into <00:09:23.000>into

190
00:09:24.600 --> 00:09:27.200
<00:09:24.600>memory <00:09:24.755>as <00:09:24.911>soon <00:09:25.066>as <00:09:25.222>the <00:09:25.377>threat <00:09:25.533>tries <00:09:25.688>to <00:09:25.844>reach <00:09:26.000>into

191
00:09:27.200 --> 00:09:28.500
<00:09:27.200>an <00:09:27.785>I/O <00:09:28.370>device.

192
00:09:29.800 --> 00:09:32.100
<00:09:29.800>The <00:09:30.000>processor <00:09:30.199>the <00:09:30.400>schedule <00:09:30.599>says <00:09:30.800>hey <00:09:31.000>you're <00:09:31.199>going

193
00:09:32.100 --> 00:09:35.400
<00:09:32.100>to <00:09:32.193>go <00:09:32.286>on <00:09:32.380>the <00:09:32.473>side. <00:09:32.566>You're <00:09:32.660>going <00:09:32.753>to <00:09:32.846>go <00:09:32.940>into <00:09:33.033>the <00:09:33.126>ilq. <00:09:33.220>And <00:09:33.313>once <00:09:33.406>your <00:09:33.500>iOS

194
00:09:35.400 --> 00:09:38.100
<00:09:35.400>done, <00:09:35.555>we're <00:09:35.711>going <00:09:35.866>to <00:09:36.022>put <00:09:36.177>you <00:09:36.333>back <00:09:36.488>into <00:09:36.644>the <00:09:36.800>reticue.

195
00:09:39.200 --> 00:09:39.300
So

196
00:09:40.700 --> 00:09:42.200
<00:09:40.700>when <00:09:41.150>you're <00:09:41.600>executing <00:09:42.050>code.

197
00:09:43.100 --> 00:09:45.600
<00:09:43.100>You <00:09:43.300>are <00:09:43.500>already <00:09:43.700>using <00:09:43.900>at <00:09:44.100>least <00:09:44.300>three <00:09:44.500>cues.

198
00:09:48.200 --> 00:09:49.100
<00:09:48.200>And <00:09:48.362>you <00:09:48.524>didn't <00:09:48.686>think <00:09:48.848>of <00:09:49.010>that.

199
00:09:50.800 --> 00:09:51.800
<00:09:50.800>threat <00:09:51.699>pools

200
00:09:53.400 --> 00:09:55.400
<00:09:53.400>if <00:09:53.750>you <00:09:54.100>are <00:09:54.449>using <00:09:54.800>a

201
00:09:56.400 --> 00:09:59.000
<00:09:56.400>an <00:09:56.600>HTTP <00:09:56.800>server <00:09:57.000>who's <00:09:57.199>using <00:09:57.400>an <00:09:57.600>HTTP <00:09:57.800>server?

202
00:10:01.500 --> 00:10:04.200
<00:10:01.500>Whoever <00:10:01.733>is <00:10:01.966>leaving <00:10:02.200>their <00:10:02.433>hands <00:10:02.666>down <00:10:02.900>is

203
00:10:04.200 --> 00:10:04.600
lying.

204
00:10:05.400 --> 00:10:09.400
<00:10:05.400>Okay, <00:10:06.100>so <00:10:06.800>creating

205
00:10:08.400 --> 00:10:10.500
<00:10:08.400>threads <00:10:09.100>is <00:10:09.800>expensive.

206
00:10:11.500 --> 00:10:14.800
<00:10:11.500>Why <00:10:11.675>is <00:10:11.850>creating <00:10:12.025>threads <00:10:12.200>expensive <00:10:12.375>because <00:10:12.550>you <00:10:12.725>allocate <00:10:12.900>memory

207
00:10:14.800 --> 00:10:17.200
<00:10:14.800>you <00:10:15.000>allocated <00:10:15.199>stack <00:10:15.400>we <00:10:15.599>have <00:10:15.800>to <00:10:16.000>do <00:10:16.199>the

208
00:10:17.200 --> 00:10:20.300
<00:10:17.200>work <00:10:17.316>of <00:10:17.433>the <00:10:17.550>allocation. <00:10:17.666>So <00:10:17.783>that <00:10:17.900>is <00:10:18.016>all <00:10:18.133>expensive <00:10:18.250>work <00:10:18.366>that <00:10:18.483>needs <00:10:18.600>to

209
00:10:20.300 --> 00:10:23.400
<00:10:20.300>happen. <00:10:20.500>It <00:10:20.699>takes <00:10:20.900>a <00:10:21.099>few <00:10:21.300>microseconds <00:10:21.500>and <00:10:21.699>we're

210
00:10:23.400 --> 00:10:26.400
<00:10:23.400>all <00:10:23.540>greedy <00:10:23.680>which <00:10:23.819>means <00:10:23.959>if <00:10:24.100>you <00:10:24.240>have <00:10:24.380>work <00:10:24.520>that <00:10:24.660>is <00:10:24.800>all

211
00:10:26.400 --> 00:10:29.800
<00:10:26.400>of <00:10:26.633>the <00:10:26.866>same <00:10:27.100>form <00:10:27.333>like <00:10:27.566>processing <00:10:27.800>HTTP

212
00:10:29.800 --> 00:10:32.100
<00:10:29.800>requests <00:10:30.033>you <00:10:30.266>make <00:10:30.500>a <00:10:30.733>set <00:10:30.966>of <00:10:31.199>threads.

213
00:10:33.400 --> 00:10:34.800
<00:10:33.400>One <00:10:33.819>five <00:10:34.240>ten. <00:10:34.660>However

214
00:10:35.800 --> 00:10:38.400
<00:10:35.800>And <00:10:35.974>you <00:10:36.150>keep <00:10:36.324>those <00:10:36.500>running <00:10:36.675>and <00:10:36.849>then <00:10:37.025>it <00:10:37.199>from

215
00:10:38.400 --> 00:10:41.100
<00:10:38.400>the <00:10:38.633>application <00:10:38.866>you <00:10:39.100>execute <00:10:39.333>callbacks <00:10:39.566>on <00:10:39.800>them.

216
00:10:42.400 --> 00:10:44.500
<00:10:42.400>Who <00:10:42.750>was <00:10:43.100>doing <00:10:43.449>JavaScript <00:10:43.800>again?

217
00:10:46.700 --> 00:10:49.200
<00:10:46.700>All <00:10:46.840>of <00:10:46.980>you <00:10:47.120>are <00:10:47.260>using <00:10:47.400>threat <00:10:47.540>pools <00:10:47.680>all <00:10:47.820>of <00:10:47.960>your <00:10:48.100>work

218
00:10:49.200 --> 00:10:52.200
<00:10:49.200>executes <00:10:49.480>in <00:10:49.760>node.js <00:10:50.040>JavaScript <00:10:50.320>all <00:10:50.600>of

219
00:10:52.200 --> 00:10:53.600
<00:10:52.200>that <00:10:52.452>executes <00:10:52.704>on <00:10:52.956>this <00:10:53.208>threat <00:10:53.460>pool.

220
00:10:54.100 --> 00:10:58.000
<00:10:54.100>It's <00:10:54.300>one <00:10:54.500>thread <00:10:54.700>belonging <00:10:54.900>to <00:10:55.100>your <00:10:55.300>process <00:10:55.500>and

221
00:10:57.200 --> 00:11:00.900
<00:10:57.200>that <00:10:57.375>process <00:10:57.550>gets <00:10:57.725>all <00:10:57.900>the <00:10:58.075>work. <00:10:58.250>You're <00:10:58.425>also <00:10:58.600>using

222
00:11:00.900 --> 00:11:02.200
<00:11:00.900>a <00:11:01.485>fourth <00:11:02.070>queue.

223
00:11:04.400 --> 00:11:05.800
<00:11:04.400>remote <00:11:05.030>function <00:11:05.660>calls

224
00:11:07.300 --> 00:11:08.600
<00:11:07.300>rest <00:11:08.470>calls

225
00:11:09.200 --> 00:11:10.700
<00:11:09.200>grpc <00:11:10.550>calls

226
00:11:11.200 --> 00:11:13.600
<00:11:11.200>Anything <00:11:11.433>that <00:11:11.666>goes <00:11:11.900>across <00:11:12.133>a <00:11:12.366>process <00:11:12.600>boundary?

227
00:11:16.200 --> 00:11:18.300
<00:11:16.200>Anything <00:11:16.433>that <00:11:16.666>goes <00:11:16.900>across <00:11:17.133>the <00:11:17.366>network <00:11:17.600>boundary?

228
00:11:19.900 --> 00:11:21.100
<00:11:19.900>Needs <00:11:20.440>more <00:11:20.980>infrastructure.

229
00:11:23.100 --> 00:11:27.000
<00:11:23.100>The <00:11:23.275>add <00:11:23.450>function <00:11:23.625>gets <00:11:23.800>translated <00:11:23.975>into <00:11:24.150>a <00:11:24.325>request <00:11:24.500>and

230
00:11:26.500 --> 00:11:28.000
<00:11:26.500>into <00:11:27.175>a <00:11:27.850>response.

231
00:11:28.700 --> 00:11:31.400
<00:11:28.700>Those <00:11:28.875>are <00:11:29.050>messages <00:11:29.225>that <00:11:29.400>are <00:11:29.575>being <00:11:29.750>formed <00:11:29.925>that <00:11:30.100>are

232
00:11:31.400 --> 00:11:32.000
<00:11:31.400>sent <00:11:31.579>through <00:11:31.760>a <00:11:31.940>network.

233
00:11:32.900 --> 00:11:33.700
<00:11:32.900>through <00:11:33.260>magic <00:11:33.620>means

234
00:11:36.300 --> 00:11:39.100
<00:11:36.300>the <00:11:36.439>magic <00:11:36.579>is <00:11:36.719>being <00:11:36.859>helped <00:11:37.000>by <00:11:37.140>a <00:11:37.280>proxy <00:11:37.420>which <00:11:37.560>sits <00:11:37.699>on

235
00:11:39.100 --> 00:11:40.800
<00:11:39.100>yours <00:11:39.450>on <00:11:39.800>the <00:11:40.150>caller <00:11:40.500>side.

236
00:11:41.600 --> 00:11:44.800
<00:11:41.600>And <00:11:41.800>by <00:11:42.000>a <00:11:42.200>listener <00:11:42.400>and <00:11:42.600>dispatcher <00:11:42.800>which <00:11:43.000>sits

237
00:11:44.800 --> 00:11:45.800
<00:11:44.800>on <00:11:45.025>the <00:11:45.250>call <00:11:45.474>Lee <00:11:45.699>side.

238
00:11:47.300 --> 00:11:48.700
<00:11:47.300>on <00:11:47.615>the <00:11:47.930>call <00:11:48.245>East <00:11:48.560>Side

239
00:11:49.600 --> 00:11:52.300
<00:11:49.600>That <00:11:49.833>those <00:11:50.066>messages <00:11:50.300>are <00:11:50.533>being <00:11:50.766>dispatched. <00:11:51.000>Meaning

240
00:11:52.300 --> 00:11:55.400
<00:11:52.300>they're <00:11:52.533>being <00:11:52.766>assigned <00:11:53.000>somehow <00:11:53.233>magically <00:11:53.466>matched <00:11:53.699>to

241
00:11:55.400 --> 00:11:58.200
<00:11:55.400>code <00:11:55.555>which <00:11:55.711>causes <00:11:55.866>the <00:11:56.022>code <00:11:56.177>to <00:11:56.333>be <00:11:56.488>executed. <00:11:56.644>That's <00:11:56.800>already

242
00:11:58.200 --> 00:12:00.300
<00:11:58.200>the <00:11:58.375>that's <00:11:58.550>the <00:11:58.725>four <00:11:58.900>queues. <00:11:59.075>We <00:11:59.250>already <00:11:59.425>talked <00:11:59.600>about.

243
00:12:01.300 --> 00:12:02.900
<00:12:01.300>So <00:12:01.533>what's <00:12:01.766>the <00:12:02.000>listener <00:12:02.233>and <00:12:02.466>dispatcher <00:12:02.699>doing?

244
00:12:03.800 --> 00:12:06.400
<00:12:03.800>The <00:12:03.939>list <00:12:04.079>and <00:12:04.219>I'm <00:12:04.359>only <00:12:04.500>showing <00:12:04.640>The <00:12:04.780>Listener <00:12:04.920>here <00:12:05.060>the <00:12:05.199>listener.

245
00:12:08.200 --> 00:12:10.100
<00:12:08.200>sits <00:12:08.433>and <00:12:08.666>hangs <00:12:08.900>on <00:12:09.133>accepts <00:12:09.366>the <00:12:09.600>connection

246
00:12:11.600 --> 00:12:12.800
<00:12:11.600>so <00:12:12.140>someone <00:12:12.680>connect

247
00:12:14.000 --> 00:12:14.800
connecting

248
00:12:15.500 --> 00:12:16.800
<00:12:15.500>over <00:12:16.670>tcp/ip

249
00:12:17.900 --> 00:12:19.000
<00:12:17.900>with <00:12:18.890>http

250
00:12:20.300 --> 00:12:22.700
<00:12:20.300>It <00:12:20.474>should <00:12:20.650>be <00:12:20.824>two <00:12:21.000>any <00:12:21.175>of <00:12:21.349>your <00:12:21.525>protocols, <00:12:21.699>right?

251
00:12:23.800 --> 00:12:26.500
<00:12:23.800>Shows <00:12:24.000>up <00:12:24.199>on <00:12:24.400>a <00:12:24.599>server <00:12:24.800>that <00:12:25.000>server <00:12:25.199>may

252
00:12:26.500 --> 00:12:26.800
<00:12:26.500>be <00:12:26.770>busy.

253
00:12:28.500 --> 00:12:31.600
<00:12:28.500>So <00:12:28.675>it <00:12:28.850>may <00:12:29.025>already <00:12:29.200>have <00:12:29.375>a <00:12:29.550>hundred <00:12:29.725>connections <00:12:29.900>that

254
00:12:31.600 --> 00:12:33.600
<00:12:31.600>are <00:12:31.775>being <00:12:31.950>currently <00:12:32.125>worked <00:12:32.300>on <00:12:32.475>or <00:12:32.650>a <00:12:32.825>thousand <00:12:33.000>connections.

255
00:12:35.300 --> 00:12:38.100
<00:12:35.300>The <00:12:35.439>server <00:12:35.579>will <00:12:35.719>is <00:12:35.859>it's <00:12:36.000>in <00:12:36.140>the <00:12:36.280>service <00:12:36.420>interest <00:12:36.560>not <00:12:36.699>to

256
00:12:38.100 --> 00:12:38.900
<00:12:38.100>get <00:12:38.819>overloaded.

257
00:12:40.200 --> 00:12:43.300
<00:12:40.200>You <00:12:40.316>don't <00:12:40.433>want <00:12:40.550>to <00:12:40.666>have <00:12:40.783>to <00:12:40.900>server <00:12:41.016>to <00:12:41.133>busy <00:12:41.250>thing. <00:12:41.366>So <00:12:41.483>the <00:12:41.600>server

258
00:12:43.300 --> 00:12:46.200
<00:12:43.300>will <00:12:43.474>try <00:12:43.650>not <00:12:43.824>to <00:12:44.000>accept <00:12:44.175>more <00:12:44.349>connections <00:12:44.525>that <00:12:44.699>can

259
00:12:46.200 --> 00:12:47.400
<00:12:46.200>deal <00:12:46.416>with. <00:12:46.632>How <00:12:46.848>is <00:12:47.064>that <00:12:47.280>handle?

260
00:12:48.600 --> 00:12:51.800
<00:12:48.600>All <00:12:48.880>the <00:12:49.160>connection <00:12:49.440>requests <00:12:49.720>go <00:12:50.000>into

261
00:12:51.800 --> 00:12:53.400
<00:12:51.800>the <00:12:52.500>accept <00:12:53.199>queue.

262
00:12:54.100 --> 00:12:55.400
<00:12:54.100>of <00:12:54.490>the <00:12:54.880>TCP <00:12:55.270>stack

263
00:12:56.600 --> 00:12:59.900
<00:12:56.600>and <00:12:56.800>so <00:12:57.000>these <00:12:57.200>these <00:12:57.400>connection <00:12:57.600>request <00:12:57.800>packets <00:12:58.000>affected

264
00:12:59.900 --> 00:13:01.200
<00:12:59.900>this <00:13:00.192>in <00:13:00.485>packets <00:13:00.777>lie <00:13:01.070>there.

265
00:13:01.900 --> 00:13:04.300
<00:13:01.900>Waiting <00:13:02.100>for <00:13:02.300>someone <00:13:02.500>to <00:13:02.699>go <00:13:02.900>and <00:13:03.100>pick <00:13:03.300>them

266
00:13:04.300 --> 00:13:07.200
<00:13:04.300>up <00:13:04.455>and <00:13:04.611>say <00:13:04.766>I'm <00:13:04.922>okay <00:13:05.077>to <00:13:05.233>go <00:13:05.388>established <00:13:05.544>that <00:13:05.699>socket

267
00:13:07.200 --> 00:13:09.000
<00:13:07.200>and <00:13:07.375>then <00:13:07.550>only <00:13:07.725>then <00:13:07.900>that <00:13:08.075>socket <00:13:08.250>is <00:13:08.425>being <00:13:08.600>created.

268
00:13:10.200 --> 00:13:13.200
<00:13:10.200>It's <00:13:10.316>a <00:13:10.433>defense <00:13:10.550>mechanism <00:13:10.666>that <00:13:10.783>the <00:13:10.900>server <00:13:11.016>can <00:13:11.133>go <00:13:11.250>in <00:13:11.366>control <00:13:11.483>how <00:13:11.600>many

269
00:13:13.200 --> 00:13:16.900
<00:13:13.200>connections <00:13:13.433>it <00:13:13.666>it <00:13:13.900>processes <00:13:14.133>by <00:13:14.366>just <00:13:14.600>taking

270
00:13:16.900 --> 00:13:18.600
<00:13:16.900>what <00:13:17.133>it <00:13:17.366>can <00:13:17.600>from <00:13:17.833>that <00:13:18.066>accept <00:13:18.300>you.

271
00:13:20.200 --> 00:13:24.100
<00:13:20.200>That's <00:13:20.316>what <00:13:20.433>we <00:13:20.550>have <00:13:20.666>that <00:13:20.783>cue <00:13:20.900>now. <00:13:21.016>Once <00:13:21.133>you <00:13:21.250>have <00:13:21.366>that <00:13:21.483>except <00:13:21.600>you

272
00:13:24.100 --> 00:13:27.300
<00:13:24.100>taking <00:13:24.380>a <00:13:24.660>request <00:13:24.940>taking <00:13:25.220>a <00:13:25.500>socket

273
00:13:27.300 --> 00:13:31.000
<00:13:27.300>the <00:13:27.455>socket <00:13:27.611>is <00:13:27.766>getting <00:13:27.922>established. <00:13:28.077>Basically <00:13:28.233>the <00:13:28.388>handshake <00:13:28.544>continue <00:13:28.699>complete

274
00:13:30.600 --> 00:13:33.200
<00:13:30.600>and <00:13:30.880>now <00:13:31.160>we <00:13:31.440>have <00:13:31.720>two <00:13:32.000>cues.

275
00:13:34.200 --> 00:13:36.100
<00:13:34.200>a <00:13:34.550>TCP <00:13:34.900>input <00:13:35.250>input <00:13:35.600>buffer

276
00:13:36.800 --> 00:13:39.700
<00:13:36.800>Which <00:13:36.955>contains <00:13:37.111>everything <00:13:37.266>all <00:13:37.422>the <00:13:37.577>messages <00:13:37.733>all <00:13:37.888>the <00:13:38.044>bytes <00:13:38.199>actually

277
00:13:39.700 --> 00:13:42.800
<00:13:39.700>being <00:13:39.933>sent <00:13:40.166>to <00:13:40.400>you <00:13:40.633>nicely. <00:13:40.866>Neatly <00:13:41.100>organized

278
00:13:42.800 --> 00:13:43.100
<00:13:42.800>in <00:13:43.070>order?

279
00:13:44.200 --> 00:13:45.500
<00:13:44.200>That <00:13:44.590>input <00:13:44.980>Q <00:13:45.370>exists.

280
00:13:47.200 --> 00:13:50.300
<00:13:47.200>Because <00:13:47.666>messages <00:13:48.133>packets <00:13:48.600>actually

281
00:13:50.300 --> 00:13:54.000
<00:13:50.300>get <00:13:50.500>lost <00:13:50.699>on <00:13:50.900>The <00:13:51.099>Wire <00:13:51.300>occasionally <00:13:51.500>and <00:13:51.699>so

282
00:13:53.400 --> 00:13:56.800
<00:13:53.400>if <00:13:53.516>they <00:13:53.633>get <00:13:53.750>lost <00:13:53.866>in <00:13:53.983>the <00:13:54.100>wire, <00:13:54.216>they <00:13:54.333>need <00:13:54.449>to <00:13:54.566>be <00:13:54.683>resent <00:13:54.800>so

283
00:13:56.800 --> 00:13:57.800
<00:13:56.800>that <00:13:57.025>you <00:13:57.250>have <00:13:57.474>a <00:13:57.699>consistent.

284
00:13:58.800 --> 00:14:01.600
<00:13:58.800>Sequence <00:13:59.079>of <00:13:59.359>data <00:13:59.640>right <00:13:59.920>packets <00:14:00.199>get

285
00:14:01.600 --> 00:14:04.300
<00:14:01.600>lost <00:14:01.833>on <00:14:02.066>the <00:14:02.300>way <00:14:02.533>all <00:14:02.766>the <00:14:03.000>time.

286
00:14:04.300 --> 00:14:06.100
<00:14:04.300>So <00:14:04.766>TCP <00:14:05.233>that <00:14:05.699>protocol

287
00:14:06.700 --> 00:14:07.700
<00:14:06.700>maintains <00:14:07.600>this

288
00:14:09.100 --> 00:14:12.300
<00:14:09.100>this <00:14:09.275>queue <00:14:09.450>and <00:14:09.625>with <00:14:09.800>that <00:14:09.975>make <00:14:10.150>sure <00:14:10.325>that <00:14:10.500>you

289
00:14:12.300 --> 00:14:15.100
<00:14:12.300>only <00:14:12.533>get <00:14:12.766>this <00:14:13.000>consistent <00:14:13.233>stream <00:14:13.466>that <00:14:13.699>is

290
00:14:15.100 --> 00:14:18.800
<00:14:15.100>in <00:14:15.300>order <00:14:15.500>as <00:14:15.700>intended <00:14:15.900>and <00:14:16.100>will <00:14:16.300>recover <00:14:16.500>packets

291
00:14:18.800 --> 00:14:21.400
<00:14:18.800>for <00:14:18.974>you <00:14:19.150>on <00:14:19.324>the <00:14:19.500>way <00:14:19.675>and <00:14:19.849>that's <00:14:20.025>the <00:14:20.199>buffer

292
00:14:21.400 --> 00:14:24.200
<00:14:21.400>ultimately <00:14:21.555>that's <00:14:21.711>being <00:14:21.866>made <00:14:22.022>available <00:14:22.177>to <00:14:22.333>your <00:14:22.488>applications <00:14:22.644>that <00:14:22.800>you

293
00:14:24.200 --> 00:14:25.400
<00:14:24.200>can <00:14:24.416>go <00:14:24.632>and <00:14:24.848>use <00:14:25.064>another <00:14:25.280>q.

294
00:14:26.300 --> 00:14:27.300
<00:14:26.300>when <00:14:26.750>you <00:14:27.199>sending

295
00:14:28.800 --> 00:14:31.100
<00:14:28.800>there's <00:14:29.000>obviously <00:14:29.199>an <00:14:29.400>output <00:14:29.599>buffer <00:14:29.800>that <00:14:30.000>you're <00:14:30.199>sending

296
00:14:31.100 --> 00:14:34.300
<00:14:31.100>that <00:14:31.240>you're <00:14:31.380>sending <00:14:31.520>into <00:14:31.660>and <00:14:31.800>that <00:14:31.940>will <00:14:32.080>push <00:14:32.220>back <00:14:32.360>will <00:14:32.500>not

297
00:14:34.300 --> 00:14:38.000
<00:14:34.300>accept <00:14:34.579>further <00:14:34.859>messages <00:14:35.140>when <00:14:35.420>bandwidth <00:14:35.699>is

298
00:14:37.200 --> 00:14:40.700
<00:14:37.200>low <00:14:37.300>and <00:14:37.400>when <00:14:37.500>it <00:14:37.600>can't <00:14:37.700>go <00:14:37.800>and <00:14:37.900>send <00:14:38.000>I'm <00:14:38.100>not <00:14:38.200>going <00:14:38.300>to <00:14:38.400>explain <00:14:38.500>the <00:14:38.600>entirety

299
00:14:40.700 --> 00:14:42.700
<00:14:40.700>people <00:14:40.875>protocol <00:14:41.050>for <00:14:41.225>you, <00:14:41.400>but <00:14:41.575>those <00:14:41.750>are <00:14:41.925>two <00:14:42.100>cues.

300
00:14:43.800 --> 00:14:44.400
once

301
00:14:45.500 --> 00:14:47.400
<00:14:45.500>data <00:14:45.780>comes <00:14:46.060>down <00:14:46.340>that <00:14:46.620>input <00:14:46.900>Q.

302
00:14:48.200 --> 00:14:51.200
<00:14:48.200>There's <00:14:48.327>an <00:14:48.454>HTTP <00:14:48.581>listener <00:14:48.709>and <00:14:48.836>that <00:14:48.963>HTTP <00:14:49.090>listener <00:14:49.218>will <00:14:49.345>now <00:14:49.472>go <00:14:49.600>and

303
00:14:51.200 --> 00:14:54.400
<00:14:51.200>observe <00:14:51.375>the <00:14:51.550>stream <00:14:51.725>will <00:14:51.900>kind <00:14:52.075>of <00:14:52.250>start. <00:14:52.425>Oh, <00:14:52.600>this

304
00:14:54.400 --> 00:14:57.000
<00:14:54.400>is <00:14:54.516>the <00:14:54.633>start <00:14:54.750>of <00:14:54.866>an <00:14:54.983>HTTP <00:14:55.100>request <00:14:55.216>and <00:14:55.333>this <00:14:55.449>is <00:14:55.566>the <00:14:55.683>end <00:14:55.800>of

305
00:14:57.200 --> 00:15:00.500
<00:14:57.200>an <00:14:57.300>HTTP <00:14:57.400>request <00:14:57.500>and <00:14:57.600>as <00:14:57.700>soon <00:14:57.800>as <00:14:57.900>it <00:14:58.000>finds <00:14:58.100>the <00:14:58.200>start <00:14:58.300>of <00:14:58.400>an <00:14:58.500>HTTP <00:14:58.600>request,

306
00:15:00.500 --> 00:15:03.200
<00:15:00.500>but <00:15:00.655>we <00:15:00.811>will <00:15:00.966>do <00:15:01.122>it <00:15:01.277>will <00:15:01.433>take <00:15:01.588>that <00:15:01.744>HTTP <00:15:01.900>request

307
00:15:03.200 --> 00:15:04.700
<00:15:03.200>and <00:15:03.392>put <00:15:03.585>it <00:15:03.778>so <00:15:03.971>you <00:15:04.164>have <00:15:04.357>another <00:15:04.550>queue

308
00:15:05.900 --> 00:15:07.300
<00:15:05.900>Because <00:15:06.214>there's <00:15:06.530>an <00:15:06.844>HTTP <00:15:07.160>listener.

309
00:15:08.600 --> 00:15:09.100
<00:15:08.600>an <00:15:09.050>application

310
00:15:10.300 --> 00:15:11.200
<00:15:10.300>sitting <00:15:10.502>on <00:15:10.705>the <00:15:10.907>other <00:15:11.110>side

311
00:15:12.700 --> 00:15:15.500
<00:15:12.700>a <00:15:12.900>pool <00:15:13.100>thread <00:15:13.300>and <00:15:13.500>that <00:15:13.700>pool <00:15:13.900>thread <00:15:14.100>will

312
00:15:15.500 --> 00:15:18.600
<00:15:15.500>now <00:15:15.627>read <00:15:15.754>from <00:15:15.881>that <00:15:16.009>queue <00:15:16.136>from <00:15:16.263>the <00:15:16.390>HD <00:15:16.518>from <00:15:16.645>the <00:15:16.772>incoming <00:15:16.900>HTTP

313
00:15:18.600 --> 00:15:22.000
<00:15:18.600>requests <00:15:18.775>and <00:15:18.950>we'll <00:15:19.125>go <00:15:19.300>and <00:15:19.475>take <00:15:19.650>them <00:15:19.825>across <00:15:20.000>multiple

314
00:15:21.000 --> 00:15:22.600
sockets.

315
00:15:23.900 --> 00:15:26.300
<00:15:23.900>So <00:15:24.100>all <00:15:24.300>the <00:15:24.500>arriving <00:15:24.699>HTTP <00:15:24.900>requests <00:15:25.100>across <00:15:25.300>all

316
00:15:26.300 --> 00:15:29.200
<00:15:26.300>established <00:15:26.579>connections, <00:15:26.859>they <00:15:27.140>can <00:15:27.420>land <00:15:27.699>in

317
00:15:29.200 --> 00:15:31.800
<00:15:29.200>that <00:15:29.307>input <00:15:29.415>queue <00:15:29.523>and <00:15:29.630>then <00:15:29.738>you <00:15:29.846>can <00:15:29.953>go <00:15:30.061>and <00:15:30.169>read <00:15:30.276>from <00:15:30.384>that <00:15:30.492>input <00:15:30.600>queue.

318
00:15:33.300 --> 00:15:34.700
<00:15:33.300>So <00:15:33.480>how <00:15:33.660>many <00:15:33.840>Q's <00:15:34.020>do <00:15:34.200>we <00:15:34.380>have <00:15:34.560>now?

319
00:15:35.600 --> 00:15:38.800
<00:15:35.600>I'm <00:15:35.775>kind <00:15:35.950>of <00:15:36.125>at <00:15:36.300>a <00:15:36.475>dozen <00:15:36.650>or <00:15:36.825>so, <00:15:37.000>depending

320
00:15:38.800 --> 00:15:41.100
<00:15:38.800>on <00:15:38.955>what <00:15:39.111>you <00:15:39.266>operating <00:15:39.422>system <00:15:39.577>is <00:15:39.733>what <00:15:39.888>your <00:15:40.044>stack <00:15:40.199>is

321
00:15:41.100 --> 00:15:44.400
<00:15:41.100>you <00:15:41.255>will <00:15:41.411>have <00:15:41.566>a <00:15:41.722>dozen. <00:15:41.877>Maybe <00:15:42.033>you <00:15:42.188>have <00:15:42.344>20 <00:15:42.500>cues

322
00:15:44.400 --> 00:15:46.800
<00:15:44.400>that <00:15:44.540>are <00:15:44.680>already <00:15:44.819>doing <00:15:44.959>work <00:15:45.100>when <00:15:45.240>you <00:15:45.380>do <00:15:45.520>an <00:15:45.660>HTTP <00:15:45.800>request.

323
00:15:49.800 --> 00:15:50.600
<00:15:49.800>so <00:15:50.040>when <00:15:50.280>you <00:15:50.520>think

324
00:15:51.900 --> 00:15:53.700
<00:15:51.900>You're <00:15:52.250>using <00:15:52.600>a <00:15:52.949>synchronous <00:15:53.300>API.

325
00:15:55.600 --> 00:15:58.200
<00:15:55.600>You're <00:15:55.950>not <00:15:56.300>you <00:15:56.650>what <00:15:57.000>you're

326
00:15:58.200 --> 00:16:01.900
<00:15:58.200>doing <00:15:58.375>is <00:15:58.550>you're <00:15:58.725>crazy. <00:15:58.900>You're <00:15:59.075>using <00:15:59.250>a <00:15:59.425>illusion <00:15:59.600>that's

327
00:16:01.900 --> 00:16:03.000
<00:16:01.900>being <00:16:02.230>created <00:16:02.560>for <00:16:02.890>you.

328
00:16:03.900 --> 00:16:06.300
<00:16:03.900>through <00:16:04.180>multiple <00:16:04.459>layers <00:16:04.740>of <00:16:05.020>asynchronous <00:16:05.300>communication

329
00:16:07.700 --> 00:16:08.500
<00:16:07.700>and <00:16:08.420>unfortunately

330
00:16:10.100 --> 00:16:13.500
<00:16:10.100>lots <00:16:10.240>of <00:16:10.380>the <00:16:10.520>capabilities <00:16:10.660>that <00:16:10.800>those <00:16:10.940>cues <00:16:11.080>give <00:16:11.220>you <00:16:11.360>are <00:16:11.500>being

331
00:16:13.500 --> 00:16:14.300
<00:16:13.500>abstracted <00:16:14.219>away.

332
00:16:15.400 --> 00:16:18.600
<00:16:15.400>You're <00:16:15.574>sitting <00:16:15.750>behind <00:16:15.925>this <00:16:16.100>whole <00:16:16.275>stack <00:16:16.449>of <00:16:16.625>asynchronous <00:16:16.800>mechanisms.

333
00:16:19.700 --> 00:16:21.100
<00:16:19.700>And <00:16:20.120>those <00:16:20.540>asynchronous <00:16:20.960>mechanisms.

334
00:16:22.200 --> 00:16:25.400
<00:16:22.200>Give <00:16:22.433>you <00:16:22.666>load <00:16:22.900>balancing <00:16:23.133>load <00:16:23.366>leveling. <00:16:23.600>We're

335
00:16:25.400 --> 00:16:28.400
<00:16:25.400>going <00:16:25.555>to <00:16:25.711>get <00:16:25.866>to <00:16:26.022>that <00:16:26.177>capabilities. <00:16:26.333>But <00:16:26.488>because <00:16:26.644>you're <00:16:26.800>using

336
00:16:28.400 --> 00:16:29.400
<00:16:28.400>an <00:16:28.850>RPC <00:16:29.300>abstraction.

337
00:16:31.200 --> 00:16:34.300
<00:16:31.200>ultimately, <00:16:31.300>your <00:16:31.400>application <00:16:31.500>is <00:16:31.600>still <00:16:31.700>going <00:16:31.800>to <00:16:31.900>be <00:16:32.000>on <00:16:32.100>fire <00:16:32.200>when <00:16:32.300>you <00:16:32.400>get <00:16:32.500>to <00:16:32.600>get

338
00:16:34.300 --> 00:16:37.500
<00:16:34.300>to <00:16:34.427>too <00:16:34.554>many <00:16:34.681>requests <00:16:34.809>because <00:16:34.936>you <00:16:35.063>have <00:16:35.190>no <00:16:35.318>way <00:16:35.445>of <00:16:35.572>Defending <00:16:35.699>against

339
00:16:37.500 --> 00:16:40.300
<00:16:37.500>it <00:16:37.655>because <00:16:37.811>everything <00:16:37.966>is <00:16:38.122>being <00:16:38.277>pushed <00:16:38.433>on <00:16:38.588>you <00:16:38.744>with <00:16:38.900>the

340
00:16:40.300 --> 00:16:43.100
<00:16:40.300>stack <00:16:40.579>gladly <00:16:40.859>ignoring <00:16:41.140>any <00:16:41.420>of <00:16:41.699>the

341
00:16:43.100 --> 00:16:45.100
<00:16:43.100>business <00:16:43.380>and <00:16:43.660>business <00:16:43.940>you <00:16:44.220>might <00:16:44.500>have

342
00:16:46.800 --> 00:16:48.400
<00:16:46.800>That <00:16:47.079>is <00:16:47.359>kind <00:16:47.640>of <00:16:47.920>sad <00:16:48.199>so.

343
00:16:49.500 --> 00:16:52.500
<00:16:49.500>I <00:16:49.780>will <00:16:50.060>propose <00:16:50.340>that <00:16:50.620>you <00:16:50.900>take

344
00:16:52.500 --> 00:16:54.300
<00:16:52.500>your <00:16:52.780>faith <00:16:53.060>into <00:16:53.340>your <00:16:53.620>own <00:16:53.900>hands.

345
00:16:56.500 --> 00:16:59.300
<00:16:56.500>And <00:16:56.640>your <00:16:56.780>faith <00:16:56.920>into <00:16:57.060>your <00:16:57.200>own <00:16:57.340>hands <00:16:57.480>take <00:16:57.620>your <00:16:57.760>feet <00:16:57.900>and

346
00:16:59.300 --> 00:17:02.700
<00:16:59.300>your <00:16:59.439>own <00:16:59.579>hands <00:16:59.719>and <00:16:59.859>use <00:17:00.000>the <00:17:00.140>message <00:17:00.280>you <00:17:00.420>explicitly <00:17:00.560>occasionally <00:17:00.699>because

347
00:17:02.700 --> 00:17:05.100
<00:17:02.700>that's <00:17:02.827>going <00:17:02.954>to <00:17:03.081>help <00:17:03.209>your <00:17:03.336>application. <00:17:03.463>So <00:17:03.590>I'm <00:17:03.718>going <00:17:03.845>to <00:17:03.972>explain <00:17:04.100>that.

348
00:17:08.300 --> 00:17:11.100
<00:17:08.300>Now <00:17:08.455>it <00:17:08.611>gets <00:17:08.766>a <00:17:08.922>little <00:17:09.077>computer <00:17:09.233>sciencey, <00:17:09.388>but <00:17:09.544>that's <00:17:09.700>okay.

349
00:17:11.100 --> 00:17:12.200
<00:17:11.099>You're <00:17:12.090>here.

350
00:17:13.700 --> 00:17:16.000
<00:17:13.700>And <00:17:13.875>you <00:17:14.050>came <00:17:14.225>here <00:17:14.400>voluntarily. <00:17:14.575>So <00:17:14.750>now <00:17:14.925>you <00:17:15.100>have

351
00:17:16.100 --> 00:17:19.100
<00:17:16.099>to <00:17:16.274>endure <00:17:16.449>a <00:17:16.625>little <00:17:16.800>bit <00:17:16.974>of <00:17:17.149>computer <00:17:17.324>sciencey <00:17:17.500>things,

352
00:17:19.100 --> 00:17:19.700
<00:17:19.099>but <00:17:19.369>that's <00:17:19.640>fine.

353
00:17:20.500 --> 00:17:24.100
<00:17:20.500>So <00:17:20.655>what <00:17:20.811>is <00:17:20.966>the <00:17:21.122>cube? <00:17:21.277>I <00:17:21.433>also <00:17:21.588>wore <00:17:21.744>a <00:17:21.900>jacket

354
00:17:23.100 --> 00:17:25.600
<00:17:23.099>so <00:17:23.379>that <00:17:23.659>I'm <00:17:23.939>a <00:17:24.219>proper <00:17:24.500>professor.

355
00:17:27.500 --> 00:17:28.500
<00:17:27.500>so <00:17:27.950>the <00:17:28.400>queue

356
00:17:30.300 --> 00:17:33.200
<00:17:30.300>the <00:17:30.416>Q <00:17:30.533>per <00:17:30.649>se <00:17:30.766>and <00:17:30.883>that's <00:17:31.000>the <00:17:31.116>cue <00:17:31.233>we <00:17:31.350>so <00:17:31.466>far <00:17:31.583>talked <00:17:31.700>about

357
00:17:33.200 --> 00:17:36.700
<00:17:33.200>is <00:17:33.375>one <00:17:33.550>of <00:17:33.725>the <00:17:33.900>most <00:17:34.075>fundamental <00:17:34.250>most <00:17:34.425>important <00:17:34.600>data

358
00:17:36.700 --> 00:17:37.400
<00:17:36.700>structures <00:17:37.015>in <00:17:37.330>compute.

359
00:17:38.300 --> 00:17:41.700
<00:17:38.300>It <00:17:38.500>is <00:17:38.700>the <00:17:38.899>thing <00:17:39.100>that <00:17:39.300>makes <00:17:39.500>everything <00:17:39.700>work

360
00:17:41.700 --> 00:17:44.600
<00:17:41.700>in <00:17:42.166>operating <00:17:42.633>systems. <00:17:43.100>It

361
00:17:44.600 --> 00:17:48.200
<00:17:44.600>is <00:17:44.716>the <00:17:44.833>most <00:17:44.949>fun <00:17:45.066>because <00:17:45.183>it's <00:17:45.300>the <00:17:45.416>most <00:17:45.533>dynamic <00:17:45.649>one. <00:17:45.766>Right <00:17:45.883>an <00:17:46.000>array

362
00:17:47.200 --> 00:17:49.000
<00:17:47.200>is <00:17:48.600>boring.

363
00:17:50.400 --> 00:17:51.300
<00:17:50.400>A <00:17:50.670>dictionary <00:17:50.940>is <00:17:51.210>boring.

364
00:17:52.300 --> 00:17:55.200
<00:17:52.300>A <00:17:52.427>tree <00:17:52.554>is <00:17:52.681>boring <00:17:52.809>because <00:17:52.936>you <00:17:53.063>only <00:17:53.190>store <00:17:53.318>stuff <00:17:53.445>in <00:17:53.572>them, <00:17:53.700>right

365
00:17:55.200 --> 00:17:57.100
<00:17:55.200>but <00:17:55.550>acute <00:17:55.900>actually <00:17:56.250>moves <00:17:56.600>things.

366
00:17:58.600 --> 00:17:59.900
<00:17:58.600>That <00:17:58.892>makes <00:17:59.185>it <00:17:59.477>super <00:17:59.770>cool.

367
00:18:00.900 --> 00:18:03.100
<00:18:00.900>Moving <00:18:01.100>things <00:18:01.300>is <00:18:01.500>great. <00:18:01.700>It's <00:18:01.900>all <00:18:02.100>the <00:18:02.300>other

368
00:18:03.100 --> 00:18:06.100
<00:18:03.100>data <00:18:03.240>structures <00:18:03.379>are <00:18:03.520>boring <00:18:03.659>because <00:18:03.800>they're <00:18:03.939>static <00:18:04.080>use <00:18:04.219>move <00:18:04.360>things. <00:18:04.500>So

369
00:18:09.500 --> 00:18:12.400
<00:18:09.500>commonly <00:18:09.655>ordered <00:18:09.811>by <00:18:09.966>this <00:18:10.122>by <00:18:10.277>the <00:18:10.433>moment <00:18:10.588>of <00:18:10.744>arrival <00:18:10.900>you

370
00:18:12.400 --> 00:18:13.400
<00:18:12.400>write <00:18:12.700>to <00:18:13.000>the <00:18:13.300>bottom.

371
00:18:14.300 --> 00:18:17.400
<00:18:14.300>And <00:18:14.440>you <00:18:14.580>take <00:18:14.720>from <00:18:14.860>the <00:18:15.000>top <00:18:15.139>and <00:18:15.280>when <00:18:15.419>you've <00:18:15.560>taken <00:18:15.700>a

372
00:18:17.400 --> 00:18:18.600
<00:18:17.400>message <00:18:17.616>out <00:18:17.832>that <00:18:18.048>message <00:18:18.264>is <00:18:18.480>gone.

373
00:18:20.200 --> 00:18:22.200
<00:18:20.200>So <00:18:20.480>right <00:18:20.760>it's <00:18:21.040>a <00:18:21.320>right <00:18:21.600>only.

374
00:18:23.000 --> 00:18:23.600
structure

375
00:18:24.900 --> 00:18:27.800
<00:18:24.900>from <00:18:25.100>the <00:18:25.300>bottom <00:18:25.500>read <00:18:25.700>only <00:18:25.900>structure <00:18:26.100>from <00:18:26.300>the

376
00:18:27.800 --> 00:18:31.100
<00:18:27.800>top <00:18:28.000>and <00:18:28.200>it <00:18:28.399>gives <00:18:28.600>you <00:18:28.800>order. <00:18:29.000>What's <00:18:29.200>most

377
00:18:30.100 --> 00:18:31.800
<00:18:30.100>important <00:18:31.500>though.

378
00:18:33.800 --> 00:18:35.900
<00:18:33.800>the <00:18:34.000>most <00:18:34.200>important <00:18:34.399>feature <00:18:34.600>as <00:18:34.800>you'll <00:18:35.000>find <00:18:35.200>is

379
00:18:37.100 --> 00:18:41.000
<00:18:37.100>taking <00:18:37.227>something <00:18:37.354>from <00:18:37.481>the <00:18:37.609>top <00:18:37.736>and <00:18:37.863>that <00:18:37.990>thing <00:18:38.118>then <00:18:38.245>being <00:18:38.372>gone. <00:18:38.500>It's

380
00:18:40.400 --> 00:18:43.400
<00:18:40.400>the <00:18:40.680>most <00:18:40.960>important <00:18:41.240>quality <00:18:41.520>of <00:18:41.800>a

381
00:18:43.400 --> 00:18:43.500
cube.

382
00:18:44.900 --> 00:18:48.000
<00:18:44.900>Because <00:18:45.180>that <00:18:45.460>means <00:18:45.740>that <00:18:46.020>only <00:18:46.300>one

383
00:18:47.400 --> 00:18:50.100
<00:18:47.400>party <00:18:47.680>can <00:18:47.960>ever <00:18:48.240>get <00:18:48.520>that <00:18:48.800>item.

384
00:18:51.100 --> 00:18:52.500
<00:18:51.100>Because <00:18:51.520>otherwise, <00:18:51.940>it's <00:18:52.360>gone.

385
00:18:54.300 --> 00:18:57.200
<00:18:54.300>And <00:18:54.440>what's <00:18:54.580>also <00:18:54.720>important <00:18:54.860>as <00:18:55.000>we'll <00:18:55.139>find <00:18:55.280>is <00:18:55.419>that <00:18:55.560>you <00:18:55.700>can

386
00:18:57.200 --> 00:19:00.300
<00:18:57.200>always <00:18:57.355>observe <00:18:57.511>the <00:18:57.666>length <00:18:57.822>of <00:18:57.977>a <00:18:58.133>cube. <00:18:58.288>You <00:18:58.444>will <00:18:58.600>always

387
00:19:00.300 --> 00:19:03.500
<00:19:00.300>be <00:19:00.440>able <00:19:00.580>to <00:19:00.720>tell <00:19:00.860>how <00:19:01.000>many <00:19:01.139>items <00:19:01.280>are <00:19:01.419>in <00:19:01.560>that <00:19:01.700>queue.

388
00:19:03.500 --> 00:19:04.200
<00:19:03.500>That <00:19:03.710>is <00:19:03.920>super <00:19:04.130>important.

389
00:19:05.500 --> 00:19:05.900
example

390
00:19:07.400 --> 00:19:08.000
<00:19:07.400>this <00:19:07.940>morning

391
00:19:10.300 --> 00:19:13.300
<00:19:10.300>when <00:19:10.407>you <00:19:10.515>were <00:19:10.623>standing <00:19:10.730>in <00:19:10.838>that <00:19:10.946>queue, <00:19:11.053>you <00:19:11.161>could <00:19:11.269>kind <00:19:11.376>of <00:19:11.484>guess <00:19:11.592>and <00:19:11.700>tell

392
00:19:13.300 --> 00:19:15.400
<00:19:13.300>when <00:19:13.649>you <00:19:14.000>would <00:19:14.350>about <00:19:14.700>be.

393
00:19:17.100 --> 00:19:20.400
<00:19:17.100>Having <00:19:17.274>to <00:19:17.449>go <00:19:17.625>and <00:19:17.800>take <00:19:17.975>your <00:19:18.149>registration <00:19:18.324>materials <00:19:18.500>out

394
00:19:20.400 --> 00:19:23.900
<00:19:20.400>and <00:19:20.540>then <00:19:20.680>finally <00:19:20.820>be <00:19:20.960>through <00:19:21.100>that <00:19:21.240>cue <00:19:21.380>but <00:19:21.520>also <00:19:21.660>the <00:19:21.800>organizers

395
00:19:23.900 --> 00:19:26.200
<00:19:23.900>could <00:19:24.180>tell <00:19:24.460>whether <00:19:24.740>they <00:19:25.020>have <00:19:25.300>to

396
00:19:26.200 --> 00:19:29.100
<00:19:26.200>have <00:19:26.400>more <00:19:26.600>staff <00:19:26.800>or <00:19:27.000>less <00:19:27.200>staff <00:19:27.400>dealing <00:19:27.600>with

397
00:19:29.100 --> 00:19:31.600
<00:19:29.100>that <00:19:29.274>cue <00:19:29.449>and <00:19:29.625>they <00:19:29.800>have <00:19:29.975>to <00:19:30.149>staff <00:19:30.324>maximum <00:19:30.500>up.

398
00:19:32.600 --> 00:19:35.300
<00:19:32.600>To <00:19:32.716>deal <00:19:32.833>with <00:19:32.949>that <00:19:33.066>big <00:19:33.183>q <00:19:33.300>and <00:19:33.416>if <00:19:33.533>they <00:19:33.649>now <00:19:33.766>look <00:19:33.883>outside, <00:19:34.000>there's

399
00:19:35.300 --> 00:19:37.200
<00:19:35.300>no <00:19:35.440>more <00:19:35.580>queue, <00:19:35.720>which <00:19:35.860>means <00:19:36.000>they <00:19:36.139>probably <00:19:36.280>only <00:19:36.419>have <00:19:36.560>two <00:19:36.700>people.

400
00:19:38.400 --> 00:19:41.100
<00:19:38.400>Because <00:19:38.507>you <00:19:38.615>can <00:19:38.723>observe <00:19:38.830>the <00:19:38.938>length <00:19:39.046>of <00:19:39.153>the <00:19:39.261>cue <00:19:39.369>so <00:19:39.476>it's <00:19:39.584>very <00:19:39.692>practical <00:19:39.800>thing.

401
00:19:41.800 --> 00:19:44.800
<00:19:41.800>Being <00:19:41.916>able <00:19:42.033>to <00:19:42.149>observe <00:19:42.266>the <00:19:42.383>length <00:19:42.500>of <00:19:42.616>the <00:19:42.733>Q <00:19:42.850>is <00:19:42.966>important <00:19:43.083>because <00:19:43.200>that

402
00:19:44.800 --> 00:19:47.800
<00:19:44.800>will <00:19:44.975>be <00:19:45.149>an <00:19:45.325>indicator <00:19:45.500>of <00:19:45.675>how <00:19:45.850>much <00:19:46.024>work <00:19:46.200>is

403
00:19:47.800 --> 00:19:50.200
<00:19:47.800>currently <00:19:47.955>what <00:19:48.111>the <00:19:48.266>capacity <00:19:48.422>of <00:19:48.577>the <00:19:48.733>system <00:19:48.888>is. <00:19:49.044>That's <00:19:49.200>left.

404
00:19:50.200 --> 00:19:53.800
<00:19:50.200>If <00:19:50.340>the <00:19:50.480>queue <00:19:50.620>is <00:19:50.760>empty <00:19:50.900>you <00:19:51.040>have <00:19:51.180>plenty <00:19:51.320>capacity <00:19:51.460>if <00:19:51.600>the

405
00:19:53.800 --> 00:19:56.200
<00:19:53.800>queue <00:19:53.955>is <00:19:54.111>long <00:19:54.266>you <00:19:54.422>don't <00:19:54.577>have <00:19:54.733>enough <00:19:54.888>capacity. <00:19:55.044>You <00:19:55.200>may

406
00:19:56.200 --> 00:19:56.900
<00:19:56.200>have <00:19:56.326>to <00:19:56.452>go <00:19:56.578>and <00:19:56.704>add <00:19:56.830>some

407
00:19:59.900 --> 00:20:02.200
<00:19:59.900>There <00:20:00.055>are <00:20:00.211>two <00:20:00.366>there <00:20:00.522>are <00:20:00.677>some <00:20:00.833>variations <00:20:00.988>of <00:20:01.144>cues. <00:20:01.300>There's

408
00:20:02.200 --> 00:20:03.000
<00:20:02.200>priority <00:20:02.920>cues.

409
00:20:03.900 --> 00:20:04.200
again

410
00:20:05.400 --> 00:20:08.300
<00:20:05.400>I <00:20:05.555>also <00:20:05.711>mentioned <00:20:05.866>that <00:20:06.022>earlier <00:20:06.177>already. <00:20:06.333>I <00:20:06.488>went <00:20:06.644>through <00:20:06.800>the

411
00:20:08.300 --> 00:20:08.900
<00:20:08.300>fast <00:20:08.840>track.

412
00:20:10.500 --> 00:20:11.400
<00:20:10.500>Because <00:20:10.905>I'm <00:20:11.310>speaker.

413
00:20:12.200 --> 00:20:14.800
<00:20:12.200>And <00:20:12.375>they <00:20:12.550>let <00:20:12.725>us <00:20:12.900>do <00:20:13.075>that. <00:20:13.250>It's <00:20:13.425>mighty <00:20:13.600>unfair.

414
00:20:15.500 --> 00:20:15.800
Okay.

415
00:20:17.200 --> 00:20:20.800
<00:20:17.200>But <00:20:17.327>it's <00:20:17.454>a <00:20:17.581>priority <00:20:17.709>queue <00:20:17.836>right? <00:20:17.963>There's <00:20:18.090>there's <00:20:18.218>a <00:20:18.345>priority <00:20:18.472>queue <00:20:18.600>Priority

416
00:20:20.800 --> 00:20:23.600
<00:20:20.800>One <00:20:21.266>speaker's <00:20:21.733>exhibitors <00:20:22.200>other

417
00:20:23.600 --> 00:20:25.100
<00:20:23.600>people <00:20:23.870>who <00:20:24.139>give <00:20:24.409>the <00:20:24.679>organizer <00:20:24.949>money.

418
00:20:26.500 --> 00:20:27.300
<00:20:26.500>more <00:20:26.740>money <00:20:26.980>than <00:20:27.220>you

419
00:20:29.300 --> 00:20:31.600
<00:20:29.300>And <00:20:29.533>then <00:20:29.766>there's <00:20:30.000>then <00:20:30.233>there's <00:20:30.466>priority <00:20:30.700>two.

420
00:20:32.700 --> 00:20:33.700
<00:20:32.700>Which <00:20:33.000>is <00:20:33.300>everybody <00:20:33.600>else?

421
00:20:34.800 --> 00:20:37.200
<00:20:34.800>And <00:20:34.940>that <00:20:35.080>can <00:20:35.220>be <00:20:35.360>that <00:20:35.500>can <00:20:35.639>be <00:20:35.780>done <00:20:35.919>in <00:20:36.060>two <00:20:36.200>ways.

422
00:20:37.200 --> 00:20:38.600
<00:20:37.200>You <00:20:37.515>can <00:20:37.830>have <00:20:38.145>two <00:20:38.460>cues.

423
00:20:40.300 --> 00:20:41.400
<00:20:40.300>Which <00:20:40.630>I <00:20:40.960>find <00:20:41.290>smarter.

424
00:20:42.400 --> 00:20:45.200
<00:20:42.400>And <00:20:42.527>which <00:20:42.654>is <00:20:42.781>the <00:20:42.909>way <00:20:43.036>how <00:20:43.163>this <00:20:43.290>is <00:20:43.418>done <00:20:43.545>here, <00:20:43.672>right? <00:20:43.800>There

425
00:20:45.200 --> 00:20:48.900
<00:20:45.200>are <00:20:45.355>two <00:20:45.511>separate <00:20:45.666>cues. <00:20:45.822>And <00:20:45.977>there <00:20:46.133>is <00:20:46.288>no <00:20:46.444>oh <00:20:46.600>you

426
00:20:48.900 --> 00:20:51.700
<00:20:48.900>are <00:20:49.027>special <00:20:49.154>and <00:20:49.281>therefore, <00:20:49.409>you <00:20:49.536>know <00:20:49.663>get <00:20:49.790>to <00:20:49.918>rush <00:20:50.045>in <00:20:50.172>pass <00:20:50.300>all

427
00:20:51.700 --> 00:20:54.800
<00:20:51.700>those <00:20:51.933>people <00:20:52.166>in <00:20:52.400>this <00:20:52.633>one <00:20:52.866>queue <00:20:53.100>because

428
00:20:54.800 --> 00:20:57.200
<00:20:54.800>there <00:20:55.033>would <00:20:55.266>be <00:20:55.500>fights <00:20:55.733>people <00:20:55.966>would <00:20:56.200>be

429
00:20:57.200 --> 00:21:00.300
<00:20:57.200>unhappy <00:20:57.316>Etc. <00:20:57.433>So <00:20:57.550>that <00:20:57.666>would <00:20:57.783>not <00:20:57.900>be <00:20:58.016>a <00:20:58.133>good <00:20:58.250>idea <00:20:58.366>in <00:20:58.483>a <00:20:58.600>practical

430
00:21:00.300 --> 00:21:03.500
<00:21:00.300>life. <00:21:00.500>But <00:21:00.700>in <00:21:00.899>computer <00:21:01.100>systems, <00:21:01.300>there <00:21:01.500>are <00:21:01.700>this

431
00:21:03.500 --> 00:21:06.400
<00:21:03.500>there <00:21:03.655>is <00:21:03.811>a <00:21:03.966>complete <00:21:04.122>this <00:21:04.277>notion <00:21:04.433>of <00:21:04.588>priority <00:21:04.744>cues. <00:21:04.900>And

432
00:21:06.400 --> 00:21:09.400
<00:21:06.400>when <00:21:06.555>you <00:21:06.711>think <00:21:06.866>about <00:21:07.022>what <00:21:07.177>threat <00:21:07.333>priority <00:21:07.488>means <00:21:07.644>or <00:21:07.800>process

433
00:21:09.400 --> 00:21:11.700
<00:21:09.400>priority <00:21:09.600>means <00:21:09.800>interoperating <00:21:10.000>system, <00:21:10.200>right <00:21:10.400>you <00:21:10.600>have <00:21:10.800>these

434
00:21:12.300 --> 00:21:15.300
<00:21:12.300>High <00:21:12.455>and <00:21:12.611>low <00:21:12.766>priority <00:21:12.922>what <00:21:13.077>that <00:21:13.233>means <00:21:13.388>is <00:21:13.544>that <00:21:13.700>these

435
00:21:15.300 --> 00:21:18.600
<00:21:15.300>the <00:21:15.533>scheduler <00:21:15.766>items <00:21:16.000>in <00:21:16.233>that <00:21:16.466>scheduler <00:21:16.700>queue

436
00:21:18.600 --> 00:21:21.100
<00:21:18.600>are <00:21:18.755>labeled <00:21:18.911>with <00:21:19.066>these <00:21:19.222>priorities <00:21:19.377>and <00:21:19.533>then <00:21:19.688>the <00:21:19.844>things <00:21:20.000>that

437
00:21:21.100 --> 00:21:24.500
<00:21:21.100>which <00:21:21.227>are <00:21:21.354>higher <00:21:21.481>priority <00:21:21.609>rush <00:21:21.736>to <00:21:21.863>rush <00:21:21.990>to <00:21:22.118>the <00:21:22.245>front, <00:21:22.372>so <00:21:22.500>it's

438
00:21:24.500 --> 00:21:25.800
<00:21:24.500>one <00:21:24.889>cue <00:21:25.280>different <00:21:25.670>priorities.

439
00:21:27.800 --> 00:21:30.400
<00:21:27.800>And <00:21:28.033>then <00:21:28.266>there's <00:21:28.500>also <00:21:28.733>a <00:21:28.966>multiplex <00:21:29.200>q

440
00:21:30.400 --> 00:21:33.700
<00:21:30.400>and <00:21:30.527>a <00:21:30.654>multiplex <00:21:30.781>queue <00:21:30.909>is <00:21:31.036>being <00:21:31.163>used <00:21:31.290>if <00:21:31.418>you <00:21:31.545>have <00:21:31.672>one <00:21:31.800>Communication

441
00:21:33.700 --> 00:21:34.000
channel.

442
00:21:35.300 --> 00:21:39.200
<00:21:35.300>That <00:21:35.427>is <00:21:35.554>has <00:21:35.681>a <00:21:35.809>form <00:21:35.936>of <00:21:36.063>q <00:21:36.190>but <00:21:36.318>you <00:21:36.445>have <00:21:36.572>multiple <00:21:36.700>contexts

443
00:21:38.200 --> 00:21:40.100
<00:21:38.200>which <00:21:38.666>flow <00:21:39.133>through <00:21:39.600>them.

444
00:21:41.600 --> 00:21:42.100
<00:21:41.600>think <00:21:42.050>of

445
00:21:42.800 --> 00:21:45.700
<00:21:42.800>Http/2 <00:21:43.266>http3 <00:21:43.733>you <00:21:44.200>have

446
00:21:45.700 --> 00:21:48.200
<00:21:45.700>one <00:21:46.050>connection, <00:21:46.400>but <00:21:46.750>hb2 <00:21:47.100>and

447
00:21:48.200 --> 00:21:51.900
<00:21:48.200>hb3 <00:21:48.400>actually <00:21:48.600>reuse <00:21:48.800>that <00:21:49.000>connection <00:21:49.200>for <00:21:49.400>multiple <00:21:49.600>concurrent

448
00:21:51.900 --> 00:21:55.200
<00:21:51.900>connections <00:21:52.366>or <00:21:52.833>links <00:21:53.300>mqp.

449
00:21:54.200 --> 00:21:57.200
<00:21:54.200>The <00:21:54.433>queuing <00:21:54.666>protocol <00:21:54.900>is <00:21:55.133>exactly <00:21:55.366>the <00:21:55.600>same.

450
00:21:57.900 --> 00:22:00.200
<00:21:57.900>So <00:21:58.100>you <00:21:58.300>have <00:21:58.500>these <00:21:58.700>scenarios <00:21:58.900>where <00:21:59.100>you <00:21:59.300>have

451
00:22:00.200 --> 00:22:03.700
<00:22:00.200>these <00:22:00.327>different <00:22:00.454>contexts <00:22:00.581>which <00:22:00.709>need <00:22:00.836>to <00:22:00.963>go <00:22:01.090>through <00:22:01.218>the <00:22:01.345>same <00:22:01.472>channel <00:22:01.600>in

452
00:22:03.700 --> 00:22:06.400
<00:22:03.700>some <00:22:03.840>way. <00:22:03.980>And <00:22:04.120>that's <00:22:04.260>also <00:22:04.400>true <00:22:04.540>for <00:22:04.680>queues <00:22:04.820>in <00:22:04.960>many <00:22:05.100>in

453
00:22:06.400 --> 00:22:09.200
<00:22:06.400>many <00:22:06.600>ways <00:22:06.800>where <00:22:07.000>you <00:22:07.200>got <00:22:07.400>Multiplex <00:22:07.600>through <00:22:07.800>those

454
00:22:09.200 --> 00:22:10.100
<00:22:09.200>so <00:22:09.470>that's <00:22:09.740>possible, <00:22:10.010>too.

455
00:22:11.200 --> 00:22:14.600
<00:22:11.200>And <00:22:11.316>it's <00:22:11.433>a <00:22:11.550>feature <00:22:11.666>you <00:22:11.783>will <00:22:11.900>also <00:22:12.016>see <00:22:12.133>in <00:22:12.250>forms <00:22:12.366>of <00:22:12.483>message <00:22:12.600>groups

456
00:22:14.600 --> 00:22:16.400
<00:22:14.600>in <00:22:15.300>queuing <00:22:16.000>products.

457
00:22:18.200 --> 00:22:18.800
<00:22:18.200>so <00:22:18.740>finally

458
00:22:20.400 --> 00:22:21.400
<00:22:20.400>after <00:22:20.700>all <00:22:21.000>this <00:22:21.300>setup

459
00:22:22.200 --> 00:22:25.200
<00:22:22.200>I <00:22:22.300>can <00:22:22.400>get <00:22:22.500>to <00:22:22.600>what <00:22:22.700>a <00:22:22.800>message <00:22:22.900>queue <00:22:23.000>is. <00:22:23.100>The <00:22:23.200>message <00:22:23.300>queue <00:22:23.400>is <00:22:23.500>all <00:22:23.600>of

460
00:22:25.200 --> 00:22:25.600
<00:22:25.200>the <00:22:25.560>above.

461
00:22:26.800 --> 00:22:27.900
<00:22:26.800>Plus <00:22:27.047>it <00:22:27.295>deals <00:22:27.542>with <00:22:27.790>messages.

462
00:22:29.900 --> 00:22:32.300
<00:22:29.900>So <00:22:30.180>it <00:22:30.460>accepts <00:22:30.740>and <00:22:31.020>stores <00:22:31.300>and

463
00:22:32.300 --> 00:22:34.300
<00:22:32.300>then <00:22:32.580>makes <00:22:32.860>messages <00:22:33.139>available <00:22:33.419>for <00:22:33.700>consumption.

464
00:22:35.100 --> 00:22:38.300
<00:22:35.100>And <00:22:35.274>this <00:22:35.449>accepting <00:22:35.625>business <00:22:35.800>is <00:22:35.975>quite <00:22:36.149>a <00:22:36.324>serious <00:22:36.500>one.

465
00:22:39.300 --> 00:22:40.500
<00:22:39.300>message <00:22:40.380>cues

466
00:22:41.200 --> 00:22:44.300
<00:22:41.200>come <00:22:41.375>in <00:22:41.550>various <00:22:41.725>forms, <00:22:41.900>but <00:22:42.075>the <00:22:42.250>most <00:22:42.425>common <00:22:42.600>ones

467
00:22:44.300 --> 00:22:45.400
<00:22:44.300>and <00:22:44.547>the <00:22:44.795>most <00:22:45.042>popular <00:22:45.290>ones.

468
00:22:46.300 --> 00:22:49.400
<00:22:46.300>Are <00:22:46.580>implemented <00:22:46.860>using <00:22:47.139>message <00:22:47.419>Brokers <00:22:47.700>and

469
00:22:49.400 --> 00:22:52.800
<00:22:49.400>those <00:22:49.633>message <00:22:49.866>Brokers <00:22:50.100>take <00:22:50.333>pride <00:22:50.566>in <00:22:50.800>not

470
00:22:52.800 --> 00:22:53.500
<00:22:52.800>losing <00:22:53.115>any <00:22:53.430>messages.

471
00:22:54.500 --> 00:22:59.100
<00:22:54.500>The <00:22:54.675>cues <00:22:54.850>we've <00:22:55.025>talked <00:22:55.200>so <00:22:55.375>far <00:22:55.550>about <00:22:55.725>CPU <00:22:55.900>Etc

472
00:22:59.100 --> 00:23:02.100
<00:22:59.100>scheduling <00:22:59.333>cues, <00:22:59.566>etcetera <00:22:59.800>when <00:23:00.033>you <00:23:00.266>turn <00:23:00.500>the

473
00:23:02.100 --> 00:23:02.500
<00:23:02.100>power <00:23:02.460>off.

474
00:23:03.400 --> 00:23:04.600
<00:23:03.400>All <00:23:03.616>of <00:23:03.832>that <00:23:04.048>is <00:23:04.264>gone, <00:23:04.480>obviously.

475
00:23:05.400 --> 00:23:08.300
<00:23:05.400>If <00:23:05.516>you <00:23:05.633>have <00:23:05.750>a <00:23:05.866>message <00:23:05.983>broker, <00:23:06.100>the <00:23:06.216>message <00:23:06.333>broker <00:23:06.450>will <00:23:06.566>go <00:23:06.683>and <00:23:06.800>take

476
00:23:08.300 --> 00:23:11.100
<00:23:08.300>a <00:23:08.500>message <00:23:08.700>like <00:23:08.899>mail <00:23:09.100>and <00:23:09.300>then <00:23:09.500>no <00:23:09.700>matter

477
00:23:11.100 --> 00:23:14.800
<00:23:11.100>what <00:23:11.199>happens. <00:23:11.300>It <00:23:11.399>will <00:23:11.500>not <00:23:11.600>lose <00:23:11.699>it <00:23:11.800>at <00:23:11.899>least <00:23:12.000>it <00:23:12.100>will <00:23:12.199>try <00:23:12.300>to <00:23:12.399>and <00:23:12.500>of

478
00:23:14.800 --> 00:23:17.400
<00:23:14.800>course <00:23:14.955>that <00:23:15.111>that <00:23:15.266>depends <00:23:15.422>someone <00:23:15.577>on <00:23:15.733>the <00:23:15.888>failure <00:23:16.044>characteristics <00:23:16.200>of

479
00:23:17.400 --> 00:23:20.300
<00:23:17.400>where <00:23:17.540>you <00:23:17.680>run <00:23:17.820>your <00:23:17.960>broker <00:23:18.100>if <00:23:18.240>you <00:23:18.380>run <00:23:18.520>your <00:23:18.660>broker <00:23:18.800>in

480
00:23:20.300 --> 00:23:23.600
<00:23:20.300>a <00:23:20.455>container <00:23:20.611>in <00:23:20.766>a <00:23:20.922>kubernetes <00:23:21.077>cluster <00:23:21.233>and <00:23:21.388>the <00:23:21.544>kubernetes <00:23:21.700>customer.

481
00:23:24.600 --> 00:23:27.300
<00:23:24.600>Burns <00:23:24.774>up. <00:23:24.949>Well, <00:23:25.125>then <00:23:25.300>all <00:23:25.475>your <00:23:25.649>messages <00:23:25.824>have <00:23:26.000>gone

482
00:23:27.300 --> 00:23:30.500
<00:23:27.300>too. <00:23:27.407>If <00:23:27.515>you <00:23:27.623>run <00:23:27.730>that <00:23:27.838>in <00:23:27.946>the <00:23:28.053>past <00:23:28.161>service <00:23:28.269>in <00:23:28.376>the <00:23:28.484>cloud, <00:23:28.592>then <00:23:28.700>it's

483
00:23:30.500 --> 00:23:32.600
<00:23:30.500>far <00:23:30.675>less <00:23:30.850>likely <00:23:31.025>that <00:23:31.200>the <00:23:31.375>message <00:23:31.550>are <00:23:31.725>getting <00:23:31.900>lost.

484
00:23:33.600 --> 00:23:36.400
<00:23:33.600>But <00:23:33.879>a <00:23:34.159>message <00:23:34.439>queue <00:23:34.719>is <00:23:35.000>insurance.

485
00:23:37.800 --> 00:23:40.100
<00:23:37.800>For <00:23:38.000>your <00:23:38.200>systems <00:23:38.399>that <00:23:38.600>if <00:23:38.800>you <00:23:39.000>want <00:23:39.200>to

486
00:23:40.100 --> 00:23:42.800
<00:23:40.100>go <00:23:40.227>and <00:23:40.354>send <00:23:40.481>a <00:23:40.609>message <00:23:40.736>from <00:23:40.863>ADB <00:23:40.990>that <00:23:41.118>that <00:23:41.245>message <00:23:41.372>is <00:23:41.500>safe.

487
00:23:44.100 --> 00:23:47.700
<00:23:44.100>And <00:23:44.240>it's <00:23:44.379>insurance <00:23:44.520>that <00:23:44.659>if <00:23:44.800>you <00:23:44.939>have <00:23:45.080>a <00:23:45.219>process <00:23:45.360>that's <00:23:45.500>using

488
00:23:47.700 --> 00:23:50.600
<00:23:47.700>those <00:23:47.933>messages <00:23:48.166>and <00:23:48.400>that <00:23:48.633>process <00:23:48.866>crashes. <00:23:49.100>Those

489
00:23:50.600 --> 00:23:51.900
<00:23:50.600>messages <00:23:50.794>are <00:23:50.990>still <00:23:51.185>going <00:23:51.380>to <00:23:51.575>be <00:23:51.770>there.

490
00:23:53.700 --> 00:23:57.100
<00:23:53.700>So <00:23:53.980>message <00:23:54.260>cues <00:23:54.540>are <00:23:54.820>our <00:23:55.100>reliability

491
00:23:56.100 --> 00:23:59.500
<00:23:56.100>feature <00:23:56.379>for <00:23:56.659>your <00:23:56.939>applications <00:23:57.219>that <00:23:57.500>accept

492
00:23:59.500 --> 00:24:02.600
<00:23:59.500>stores <00:23:59.655>messages <00:23:59.811>and <00:23:59.966>holds <00:24:00.122>on <00:24:00.277>to <00:24:00.433>them <00:24:00.588>until <00:24:00.744>you <00:24:00.900>consume

493
00:24:02.600 --> 00:24:02.800
them.

494
00:24:03.500 --> 00:24:06.600
<00:24:03.500>And <00:24:03.675>certainly <00:24:03.850>if <00:24:04.025>we <00:24:04.200>were <00:24:04.375>talking <00:24:04.550>about <00:24:04.725>Cloud <00:24:04.900>brokers.

495
00:24:07.500 --> 00:24:10.600
<00:24:07.500>Azure <00:24:07.850>service <00:24:08.200>bus <00:24:08.550>AWS <00:24:08.900>sqs.

496
00:24:11.200 --> 00:24:14.400
<00:24:11.200>Google <00:24:11.400>gcp <00:24:11.600>they <00:24:11.800>make <00:24:12.000>those <00:24:12.200>promises. <00:24:12.400>None <00:24:12.600>of

497
00:24:14.400 --> 00:24:17.400
<00:24:14.400>those <00:24:14.540>Brokers <00:24:14.680>will <00:24:14.820>lose <00:24:14.960>a <00:24:15.100>message. <00:24:15.240>You <00:24:15.380>store <00:24:15.520>them. <00:24:15.660>You <00:24:15.800>store

498
00:24:17.400 --> 00:24:20.700
<00:24:17.400>that <00:24:17.493>message <00:24:17.586>there. <00:24:17.680>You <00:24:17.773>can <00:24:17.866>go <00:24:17.960>and <00:24:18.053>retrieve <00:24:18.146>it <00:24:18.240>later. <00:24:18.333>It <00:24:18.426>won't <00:24:18.520>be <00:24:18.613>gone <00:24:18.706>unless <00:24:18.800>you

499
00:24:20.700 --> 00:24:21.100
<00:24:20.700>wish <00:24:21.060>to

500
00:24:22.200 --> 00:24:23.200
<00:24:22.200>that's <00:24:22.380>something <00:24:22.560>we <00:24:22.740>can <00:24:22.920>also <00:24:23.100>do.

501
00:24:24.200 --> 00:24:24.700
<00:24:24.200>a <00:24:24.650>q

502
00:24:25.600 --> 00:24:28.200
<00:24:25.600>and <00:24:25.774>that <00:24:25.949>is <00:24:26.125>and <00:24:26.300>these <00:24:26.475>three <00:24:26.649>next <00:24:26.824>items <00:24:27.000>are

503
00:24:28.200 --> 00:24:28.900
<00:24:28.200>super <00:24:28.830>important.

504
00:24:30.500 --> 00:24:33.600
<00:24:30.500>Acute <00:24:30.966>individually <00:24:31.433>manages <00:24:31.900>the

505
00:24:33.600 --> 00:24:34.700
<00:24:33.600>life <00:24:33.847>cycle <00:24:34.095>of <00:24:34.342>every <00:24:34.590>message.

506
00:24:35.400 --> 00:24:36.900
<00:24:35.400>A <00:24:35.737>message <00:24:36.075>can <00:24:36.412>be <00:24:36.750>accepted.

507
00:24:37.700 --> 00:24:40.400
<00:24:37.700>Once <00:24:37.840>the <00:24:37.980>message <00:24:38.120>has <00:24:38.260>been <00:24:38.400>accepted. <00:24:38.540>It's <00:24:38.680>moved <00:24:38.820>into <00:24:38.960>the <00:24:39.100>available

508
00:24:40.400 --> 00:24:43.100
<00:24:40.400>State <00:24:40.600>available <00:24:40.800>means <00:24:41.000>if <00:24:41.200>he <00:24:41.400>had <00:24:41.600>now <00:24:41.800>be

509
00:24:43.100 --> 00:24:44.100
<00:24:43.100>consumed <00:24:43.550>by <00:24:44.000>consumers.

510
00:24:45.100 --> 00:24:48.200
<00:24:45.100>Once <00:24:45.255>it <00:24:45.411>has <00:24:45.566>been <00:24:45.722>consumed <00:24:45.877>it <00:24:46.033>is <00:24:46.188>archived <00:24:46.344>or <00:24:46.500>deleted.

511
00:24:49.400 --> 00:24:52.100
<00:24:49.400>And <00:24:49.527>then <00:24:49.654>it <00:24:49.781>may <00:24:49.909>also <00:24:50.036>be <00:24:50.163>rejected. <00:24:50.290>We're <00:24:50.418>going <00:24:50.545>to <00:24:50.672>see <00:24:50.800>what

512
00:24:52.100 --> 00:24:52.900
<00:24:52.100>we <00:24:52.340>do <00:24:52.580>with <00:24:52.820>that.

513
00:24:54.700 --> 00:24:57.100
<00:24:54.700>So <00:24:54.827>it <00:24:54.954>has <00:24:55.081>mass <00:24:55.209>it <00:24:55.336>has <00:24:55.463>it <00:24:55.590>has <00:24:55.718>States <00:24:55.845>it <00:24:55.972>goes <00:24:56.100>through

514
00:24:57.100 --> 00:25:00.600
<00:24:57.100>and <00:24:57.240>the <00:24:57.379>broker <00:24:57.520>the <00:24:57.659>message <00:24:57.800>queue <00:24:57.939>has <00:24:58.080>a <00:24:58.219>feature <00:24:58.360>as <00:24:58.500>a

515
00:25:00.600 --> 00:25:01.600
<00:25:00.600>feature <00:25:01.050>manages <00:25:01.500>that

516
00:25:03.400 --> 00:25:06.100
<00:25:03.400>Messages <00:25:03.680>are <00:25:03.960>also <00:25:04.240>exclusively <00:25:04.520>acquired <00:25:04.800>by

517
00:25:06.100 --> 00:25:09.700
<00:25:06.100>one <00:25:06.255>consumer. <00:25:06.411>Which <00:25:06.566>means <00:25:06.722>if <00:25:06.877>you <00:25:07.033>want <00:25:07.188>to <00:25:07.344>schedule <00:25:07.500>work.

518
00:25:10.800 --> 00:25:13.200
<00:25:10.800>Work <00:25:11.033>is <00:25:11.266>usually <00:25:11.500>done <00:25:11.733>once <00:25:11.966>and <00:25:12.200>if

519
00:25:13.200 --> 00:25:16.500
<00:25:13.200>you <00:25:13.327>want <00:25:13.454>to <00:25:13.581>make <00:25:13.709>sure <00:25:13.836>that <00:25:13.963>in <00:25:14.090>the <00:25:14.218>distributed <00:25:14.345>system <00:25:14.472>that <00:25:14.600>work

520
00:25:16.500 --> 00:25:20.300
<00:25:16.500>it <00:25:16.675>only <00:25:16.850>done <00:25:17.025>by <00:25:17.200>one <00:25:17.375>and <00:25:17.550>one <00:25:17.725>party, <00:25:17.900>but

521
00:25:19.300 --> 00:25:22.400
<00:25:19.300>you <00:25:19.500>need <00:25:19.700>to <00:25:19.899>have <00:25:20.100>a <00:25:20.300>thousand <00:25:20.500>desks <00:25:20.700>in

522
00:25:22.400 --> 00:25:25.500
<00:25:22.400>which <00:25:22.555>you <00:25:22.711>can <00:25:22.866>process <00:25:23.022>registrations. <00:25:23.177>You <00:25:23.333>have <00:25:23.488>a <00:25:23.644>thousand <00:25:23.800>processors

523
00:25:25.500 --> 00:25:28.000
<00:25:25.500>in <00:25:25.640>which <00:25:25.780>you <00:25:25.920>want <00:25:26.060>to <00:25:26.200>go <00:25:26.340>into <00:25:26.480>work. <00:25:26.620>Then <00:25:26.760>you <00:25:26.900>need

524
00:25:28.100 --> 00:25:31.600
<00:25:28.100>to <00:25:28.187>have <00:25:28.274>a <00:25:28.362>tiebreaker. <00:25:28.449>You <00:25:28.537>need <00:25:28.625>to <00:25:28.712>have <00:25:28.800>a <00:25:28.887>judge <00:25:28.975>on <00:25:29.062>who <00:25:29.149>gets <00:25:29.237>what <00:25:29.324>work <00:25:29.412>the <00:25:29.500>queue

525
00:25:31.600 --> 00:25:34.300
<00:25:31.600>is <00:25:31.755>that <00:25:31.911>the <00:25:32.066>Q <00:25:32.222>gives <00:25:32.377>that <00:25:32.533>work <00:25:32.688>to <00:25:32.844>one <00:25:33.000>consumer.

526
00:25:35.200 --> 00:25:36.800
<00:25:35.200>And <00:25:35.375>as <00:25:35.550>I <00:25:35.725>said, <00:25:35.900>the <00:25:36.075>length <00:25:36.250>can <00:25:36.425>be <00:25:36.600>query.

527
00:25:38.200 --> 00:25:41.400
<00:25:38.200>In <00:25:38.355>those <00:25:38.511>message <00:25:38.666>in <00:25:38.822>the <00:25:38.977>message <00:25:39.133>queue <00:25:39.288>run <00:25:39.444>messages. <00:25:39.600>We're

528
00:25:41.400 --> 00:25:42.600
<00:25:41.400>going <00:25:41.535>to <00:25:41.670>get <00:25:41.805>to <00:25:41.940>the <00:25:42.075>messages <00:25:42.210>in <00:25:42.345>a <00:25:42.480>moment.

529
00:25:43.500 --> 00:25:43.800
Okay.

530
00:25:46.100 --> 00:25:48.800
<00:25:46.100>This <00:25:46.207>is <00:25:46.315>a <00:25:46.423>very <00:25:46.530>important <00:25:46.638>point <00:25:46.746>that <00:25:46.853>I <00:25:46.961>want <00:25:47.069>to <00:25:47.176>make <00:25:47.284>at <00:25:47.392>this <00:25:47.500>point.

531
00:25:49.700 --> 00:25:52.100
<00:25:49.700>Apache <00:25:49.933>Kafka <00:25:50.166>is <00:25:50.400>not <00:25:50.633>a <00:25:50.866>message <00:25:51.100>queue.

532
00:25:52.700 --> 00:25:55.900
<00:25:52.700>If <00:25:52.875>you <00:25:53.050>believe <00:25:53.225>that <00:25:53.400>you're <00:25:53.575>building <00:25:53.750>a <00:25:53.925>modern <00:25:54.100>messaging

533
00:25:55.900 --> 00:25:58.300
<00:25:55.900>infrastructure <00:25:56.180>with <00:25:56.460>Apache <00:25:56.740>Kafka <00:25:57.020>that <00:25:57.300>has

534
00:25:58.300 --> 00:26:01.700
<00:25:58.300>cues <00:25:58.475>or <00:25:58.649>if <00:25:58.825>you <00:25:59.000>call <00:25:59.175>a <00:25:59.350>Kafka <00:25:59.524>topic <00:25:59.700>a

535
00:26:01.700 --> 00:26:02.700
<00:26:01.700>queue <00:26:02.150>you're <00:26:02.600>wrong.

536
00:26:04.300 --> 00:26:07.600
<00:26:04.300>Kafka <00:26:04.533>had <00:26:04.766>doesn't <00:26:05.000>have <00:26:05.233>individually <00:26:05.466>management <00:26:05.700>of

537
00:26:07.600 --> 00:26:10.300
<00:26:07.600>life <00:26:07.774>cycle <00:26:07.949>of <00:26:08.125>messages. <00:26:08.300>You <00:26:08.475>cannot <00:26:08.649>query <00:26:08.824>the <00:26:09.000>length

538
00:26:10.300 --> 00:26:13.800
<00:26:10.300>of <00:26:10.407>the <00:26:10.515>cube <00:26:10.623>because <00:26:10.730>you <00:26:10.838>don't <00:26:10.946>know <00:26:11.053>what <00:26:11.161>the <00:26:11.269>consumption <00:26:11.376>status <00:26:11.484>is <00:26:11.592>and <00:26:11.700>messages

539
00:26:13.800 --> 00:26:16.900
<00:26:13.800>are <00:26:13.975>not <00:26:14.149>exclusively <00:26:14.325>inquired <00:26:14.500>by <00:26:14.675>one <00:26:14.850>consumer. <00:26:15.024>They're <00:26:15.200>always

540
00:26:16.900 --> 00:26:19.300
<00:26:16.900>acquired <00:26:17.180>by <00:26:17.460>a <00:26:17.740>consumer <00:26:18.020>group <00:26:18.300>and

541
00:26:19.300 --> 00:26:22.400
<00:26:19.300>that <00:26:19.455>consumer <00:26:19.611>group <00:26:19.766>can <00:26:19.922>scroll <00:26:20.077>back <00:26:20.233>and <00:26:20.388>forth <00:26:20.544>over <00:26:20.700>that

542
00:26:22.400 --> 00:26:23.000
<00:26:22.400>message <00:26:22.940>stream.

543
00:26:23.800 --> 00:26:26.500
<00:26:23.800>There <00:26:24.033>are <00:26:24.266>no <00:26:24.500>Q <00:26:24.733>features <00:26:24.966>in <00:26:25.200>Apache

544
00:26:26.500 --> 00:26:27.800
<00:26:26.500>Kafka. <00:26:26.792>It's <00:26:27.085>not <00:26:27.377>a <00:26:27.670>cue.

545
00:26:29.600 --> 00:26:31.100
<00:26:29.600>Because <00:26:29.870>and <00:26:30.139>I'm <00:26:30.409>saying <00:26:30.679>that <00:26:30.949>here.

546
00:26:31.900 --> 00:26:34.900
<00:26:31.900>Because <00:26:32.180>I <00:26:32.460>see <00:26:32.740>in <00:26:33.020>modern <00:26:33.300>infrastructures

547
00:26:34.900 --> 00:26:37.400
<00:26:34.900>Apache <00:26:35.366>Kafka <00:26:35.833>being <00:26:36.300>used

548
00:26:37.400 --> 00:26:39.700
<00:26:37.400>as <00:26:37.600>the <00:26:37.800>queue <00:26:38.000>and <00:26:38.200>it's <00:26:38.400>just <00:26:38.600>not <00:26:38.800>right.

549
00:26:41.500 --> 00:26:44.600
<00:26:41.500>There <00:26:41.627>are <00:26:41.754>other <00:26:41.881>products. <00:26:42.009>I'm <00:26:42.136>going <00:26:42.263>to <00:26:42.390>name <00:26:42.518>a <00:26:42.645>few <00:26:42.772>that <00:26:42.900>do

550
00:26:44.600 --> 00:26:46.900
<00:26:44.600>that <00:26:44.774>work <00:26:44.949>and <00:26:45.125>there <00:26:45.300>it <00:26:45.475>actually <00:26:45.649>has <00:26:45.824>its <00:26:46.000>place.

551
00:26:48.300 --> 00:26:51.500
<00:26:48.300>As <00:26:48.440>an <00:26:48.580>event <00:26:48.720>stream <00:26:48.860>engine, <00:26:49.000>but <00:26:49.139>it's <00:26:49.280>not <00:26:49.419>a <00:26:49.560>cube <00:26:49.700>broker.

552
00:26:52.300 --> 00:26:53.400
<00:26:52.300>Take <00:26:52.547>that <00:26:52.795>home <00:26:53.042>with <00:26:53.290>you.

553
00:26:54.800 --> 00:26:57.000
<00:26:54.800>All <00:26:55.033>right. <00:26:55.266>So <00:26:55.500>what <00:26:55.733>is <00:26:55.966>the <00:26:56.200>message?

554
00:26:58.800 --> 00:27:01.000
<00:26:58.800>A <00:26:59.149>message <00:26:59.500>is <00:26:59.850>an <00:27:00.200>envelope.

555
00:27:02.100 --> 00:27:04.000
<00:27:02.100>That <00:27:02.449>is <00:27:02.800>annotated <00:27:03.149>with <00:27:03.500>metadata.

556
00:27:06.200 --> 00:27:10.100
<00:27:06.200>Around <00:27:06.327>the <00:27:06.454>data <00:27:06.581>structure <00:27:06.709>that <00:27:06.836>you <00:27:06.963>want <00:27:07.090>to <00:27:07.218>have <00:27:07.345>moved <00:27:07.472>between <00:27:07.600>data

557
00:27:09.100 --> 00:27:12.200
<00:27:09.100>and <00:27:09.379>absent <00:27:09.659>services. <00:27:09.939>So <00:27:10.219>let's <00:27:10.500>start

558
00:27:12.200 --> 00:27:15.400
<00:27:12.200>with <00:27:12.340>the <00:27:12.480>data <00:27:12.620>structure. <00:27:12.760>The <00:27:12.900>data <00:27:13.040>structure <00:27:13.180>is <00:27:13.320>the <00:27:13.460>letter <00:27:13.600>you

559
00:27:15.400 --> 00:27:16.600
<00:27:15.400>want <00:27:15.616>to <00:27:15.832>send <00:27:16.048>between <00:27:16.264>two <00:27:16.480>applications.

560
00:27:18.100 --> 00:27:19.500
<00:27:18.100>It <00:27:18.520>might <00:27:18.940>be <00:27:19.360>schematized.

561
00:27:20.800 --> 00:27:22.200
<00:27:20.800>Avril <00:27:22.060>protobuf

562
00:27:22.700 --> 00:27:25.200
<00:27:22.700>Thrift <00:27:22.933>you <00:27:23.166>know, <00:27:23.400>whatever <00:27:23.633>you're <00:27:23.866>encoding <00:27:24.100>is

563
00:27:25.200 --> 00:27:28.600
<00:27:25.200>X <00:27:25.400>Jason <00:27:25.600>XML <00:27:25.800>whatever <00:27:26.000>that <00:27:26.200>is <00:27:26.400>a <00:27:26.600>message

564
00:27:28.600 --> 00:27:31.000
<00:27:28.600>broker <00:27:28.774>typically <00:27:28.949>doesn't <00:27:29.125>care. <00:27:29.300>It <00:27:29.475>moves <00:27:29.649>by <00:27:29.824>the <00:27:30.000>race.

565
00:27:32.400 --> 00:27:35.000
<00:27:32.400>Because <00:27:32.600>n <00:27:32.800>that <00:27:33.000>message <00:27:33.200>may <00:27:33.400>be <00:27:33.600>end-to-end <00:27:33.800>encrypted.

566
00:27:36.100 --> 00:27:39.100
<00:27:36.100>So <00:27:36.274>the <00:27:36.449>message <00:27:36.625>broker <00:27:36.800>just <00:27:36.975>the <00:27:37.149>queue <00:27:37.324>has <00:27:37.500>no.

567
00:27:40.200 --> 00:27:43.100
<00:27:40.200>Opinion <00:27:40.400>typically <00:27:40.600>about <00:27:40.800>what <00:27:41.000>that <00:27:41.200>payload <00:27:41.400>is. <00:27:41.600>It

568
00:27:43.100 --> 00:27:44.100
<00:27:43.100>doesn't <00:27:43.324>look <00:27:43.550>into <00:27:43.774>your <00:27:44.000>letter.

569
00:27:44.800 --> 00:27:47.700
<00:27:44.800>Because <00:27:44.975>that <00:27:45.149>is <00:27:45.325>so <00:27:45.500>you <00:27:45.675>need <00:27:45.850>to <00:27:46.024>annotate <00:27:46.200>that

570
00:27:47.700 --> 00:27:50.100
<00:27:47.700>message <00:27:47.855>with <00:27:48.011>a <00:27:48.166>little <00:27:48.322>bit <00:27:48.477>of <00:27:48.633>information <00:27:48.788>so <00:27:48.944>that <00:27:49.100>the

571
00:27:50.100 --> 00:27:53.500
<00:27:50.100>message <00:27:50.300>broker <00:27:50.500>or <00:27:50.699>pops <00:27:50.899>up <00:27:51.100>infrastructure, <00:27:51.300>but <00:27:51.500>also

572
00:27:53.500 --> 00:27:56.700
<00:27:53.500>the <00:27:53.780>dispatch <00:27:54.060>code <00:27:54.340>meaning <00:27:54.620>how <00:27:54.900>that

573
00:27:56.700 --> 00:27:59.600
<00:27:56.700>message <00:27:56.900>gets <00:27:57.100>from <00:27:57.300>the <00:27:57.500>queue <00:27:57.700>into <00:27:57.900>your <00:27:58.100>application

574
00:27:59.600 --> 00:28:02.600
<00:27:59.600>that <00:27:59.774>that <00:27:59.949>has <00:28:00.125>some <00:28:00.300>information <00:28:00.475>to <00:28:00.649>do <00:28:00.824>with <00:28:01.000>to

575
00:28:02.600 --> 00:28:05.700
<00:28:02.600>deal <00:28:02.800>with <00:28:03.000>and <00:28:03.199>so <00:28:03.399>that <00:28:03.600>is <00:28:03.800>metadata <00:28:04.000>metadata

576
00:28:05.700 --> 00:28:08.300
<00:28:05.700>is <00:28:06.050>the <00:28:06.400>two <00:28:06.750>of <00:28:07.100>the

577
00:28:08.300 --> 00:28:11.600
<00:28:08.300>message <00:28:08.475>the <00:28:08.649>subject <00:28:08.825>or <00:28:09.000>sometimes <00:28:09.175>a <00:28:09.350>type <00:28:09.524>or <00:28:09.700>content

578
00:28:11.600 --> 00:28:15.300
<00:28:11.600>type <00:28:11.774>or <00:28:11.949>correlation <00:28:12.125>ID. <00:28:12.300>These <00:28:12.475>are <00:28:12.649>all <00:28:12.824>attributes <00:28:13.000>with

579
00:28:15.300 --> 00:28:18.200
<00:28:15.300>which <00:28:15.500>that <00:28:15.700>message <00:28:15.899>is <00:28:16.100>decorated <00:28:16.300>and <00:28:16.500>if <00:28:16.700>you

580
00:28:18.200 --> 00:28:21.100
<00:28:18.200>want <00:28:18.340>to <00:28:18.480>have <00:28:18.620>a <00:28:18.760>image <00:28:18.900>of <00:28:19.040>that <00:28:19.180>of <00:28:19.320>how <00:28:19.460>that <00:28:19.600>actually

581
00:28:22.300 --> 00:28:25.700
<00:28:22.300>How <00:28:22.455>that <00:28:22.611>doesn't <00:28:22.766>actually <00:28:22.922>look <00:28:23.077>but <00:28:23.233>to <00:28:23.388>memorize <00:28:23.544>that <00:28:23.700>think

582
00:28:25.700 --> 00:28:26.000
<00:28:25.700>of <00:28:25.970>this.

583
00:28:28.800 --> 00:28:31.600
<00:28:28.800>Okay, <00:28:29.149>the <00:28:29.500>payload <00:28:29.850>is <00:28:30.200>inside

584
00:28:31.600 --> 00:28:32.100
<00:28:31.600>of <00:28:31.824>the <00:28:32.050>envelope.

585
00:28:33.100 --> 00:28:35.000
<00:28:33.100>You <00:28:33.379>don't <00:28:33.659>know <00:28:33.939>what's <00:28:34.219>in <00:28:34.500>there.

586
00:28:36.500 --> 00:28:38.400
<00:28:36.500>It <00:28:36.700>can <00:28:36.900>be <00:28:37.100>a <00:28:37.300>hundred <00:28:37.500>megabytes <00:28:37.700>of <00:28:37.900>data.

587
00:28:39.200 --> 00:28:42.500
<00:28:39.200>It <00:28:39.340>can <00:28:39.480>be <00:28:39.620>encrypted. <00:28:39.760>It <00:28:39.900>can <00:28:40.040>be <00:28:40.180>encoded <00:28:40.320>in <00:28:40.460>protobuf. <00:28:40.600>You

588
00:28:42.500 --> 00:28:43.000
<00:28:42.500>can't <00:28:42.725>see <00:28:42.950>it.

589
00:28:44.200 --> 00:28:47.300
<00:28:44.200>It's <00:28:44.307>important <00:28:44.415>and <00:28:44.523>the <00:28:44.630>receiver <00:28:44.738>will <00:28:44.846>go <00:28:44.953>and <00:28:45.061>open <00:28:45.169>it <00:28:45.276>and <00:28:45.384>it <00:28:45.492>will <00:28:45.600>then

590
00:28:47.300 --> 00:28:50.500
<00:28:47.300>able <00:28:47.427>to <00:28:47.554>have <00:28:47.681>to <00:28:47.809>be <00:28:47.936>able <00:28:48.063>to <00:28:48.190>tell <00:28:48.318>but <00:28:48.445>it's <00:28:48.572>not <00:28:48.700>important

591
00:28:50.500 --> 00:28:53.800
<00:28:50.500>for <00:28:50.850>transport <00:28:51.200>what's <00:28:51.550>important <00:28:51.900>is

592
00:28:53.800 --> 00:28:57.300
<00:28:53.800>that <00:28:54.033>we <00:28:54.266>have <00:28:54.500>some <00:28:54.733>information <00:28:54.966>about <00:28:55.200>where

593
00:28:56.300 --> 00:28:59.200
<00:28:56.300>does <00:28:56.580>this <00:28:56.860>come <00:28:57.139>from? <00:28:57.419>What <00:28:57.700>is

594
00:28:59.200 --> 00:29:02.200
<00:28:59.200>the <00:28:59.316>quality <00:28:59.433>of <00:28:59.550>service? <00:28:59.666>We're <00:28:59.783>expecting. <00:28:59.900>Where <00:29:00.016>does <00:29:00.133>that <00:29:00.250>need <00:29:00.366>to <00:29:00.483>go <00:29:00.600>to

595
00:29:02.200 --> 00:29:05.600
<00:29:02.200>and <00:29:02.433>some <00:29:02.666>other <00:29:02.900>it's <00:29:03.133>some <00:29:03.366>other <00:29:03.600>capabilities

596
00:29:05.600 --> 00:29:08.800
<00:29:05.600>that <00:29:05.800>are <00:29:06.000>associated <00:29:06.199>with <00:29:06.399>the <00:29:06.600>transport <00:29:06.800>metadata <00:29:07.000>is

597
00:29:08.800 --> 00:29:11.400
<00:29:08.800>all <00:29:08.927>for <00:29:09.054>the <00:29:09.181>transport <00:29:09.309>to <00:29:09.436>go <00:29:09.563>move <00:29:09.690>things <00:29:09.818>around <00:29:09.945>the <00:29:10.072>cue <00:29:10.200>reads

598
00:29:11.400 --> 00:29:11.500
that

599
00:29:12.700 --> 00:29:15.600
<00:29:12.700>And <00:29:12.900>then <00:29:13.100>your <00:29:13.300>application <00:29:13.500>reads <00:29:13.700>the <00:29:13.900>inside <00:29:14.100>of

600
00:29:15.600 --> 00:29:17.300
<00:29:15.600>that <00:29:15.879>envelope. <00:29:16.159>So <00:29:16.439>those <00:29:16.719>are <00:29:17.000>messages.

601
00:29:18.400 --> 00:29:18.800
messages

602
00:29:20.100 --> 00:29:20.700
<00:29:20.100>are <00:29:20.640>that.

603
00:29:22.100 --> 00:29:22.400
Okay.

604
00:29:24.300 --> 00:29:27.500
<00:29:24.300>And <00:29:24.475>I <00:29:24.649>apologize <00:29:24.825>for <00:29:25.000>profoundly <00:29:25.175>for <00:29:25.350>having <00:29:25.524>this <00:29:25.700>so

605
00:29:27.500 --> 00:29:30.300
<00:29:27.500>small, <00:29:27.627>but <00:29:27.754>I <00:29:27.881>thought <00:29:28.009>at <00:29:28.136>this <00:29:28.263>conference <00:29:28.390>I <00:29:28.518>don't <00:29:28.645>get <00:29:28.772>away <00:29:28.900>without

606
00:29:30.300 --> 00:29:32.900
<00:29:30.300>showing <00:29:30.407>you <00:29:30.515>a <00:29:30.623>little <00:29:30.730>bit <00:29:30.838>of <00:29:30.946>code. <00:29:31.053>So <00:29:31.161>I'm <00:29:31.269>going <00:29:31.376>to <00:29:31.484>do <00:29:31.592>that <00:29:31.700>here.

607
00:29:35.900 --> 00:29:38.300
<00:29:35.900>And <00:29:36.133>it's <00:29:36.366>really <00:29:36.600>just <00:29:36.833>a <00:29:37.066>blip <00:29:37.300>of

608
00:29:38.300 --> 00:29:41.300
<00:29:38.300>how <00:29:38.455>this <00:29:38.611>works. <00:29:38.766>You <00:29:38.922>create <00:29:39.077>a <00:29:39.233>must <00:29:39.388>you <00:29:39.544>create <00:29:39.700>a

609
00:29:41.300 --> 00:29:44.300
<00:29:41.300>sender. <00:29:41.455>You <00:29:41.611>create <00:29:41.766>a <00:29:41.922>message <00:29:42.077>and <00:29:42.233>then <00:29:42.388>you <00:29:42.544>send <00:29:42.700>that

610
00:29:44.300 --> 00:29:46.000
<00:29:44.300>message <00:29:44.649>and <00:29:45.000>then <00:29:45.350>you're <00:29:45.700>done.

611
00:29:46.900 --> 00:29:48.200
<00:29:46.900>And <00:29:47.134>then <00:29:47.368>you <00:29:47.602>create <00:29:47.836>a <00:29:48.070>receiver.

612
00:29:49.200 --> 00:29:50.100
<00:29:49.200>And <00:29:49.402>you <00:29:49.605>received <00:29:49.807>that <00:29:50.010>message.

613
00:29:51.300 --> 00:29:54.200
<00:29:51.300>And <00:29:51.399>then <00:29:51.500>you <00:29:51.600>get <00:29:51.700>that <00:29:51.800>you <00:29:51.899>get <00:29:52.000>the <00:29:52.100>received <00:29:52.200>message <00:29:52.300>get <00:29:52.399>the <00:29:52.500>body <00:29:52.600>out <00:29:52.700>and

614
00:29:54.200 --> 00:29:57.300
<00:29:54.200>you <00:29:54.375>write <00:29:54.550>it <00:29:54.725>and <00:29:54.900>that's <00:29:55.075>how <00:29:55.250>complicated <00:29:55.425>interacting <00:29:55.600>with

615
00:29:57.300 --> 00:29:59.300
<00:29:57.300>the <00:29:57.580>queue <00:29:57.860>is. <00:29:58.139>That's <00:29:58.419>our <00:29:58.700>clients.

616
00:30:00.400 --> 00:30:03.700
<00:30:00.400>And <00:30:00.600>you <00:30:00.800>know <00:30:01.000>other <00:30:01.200>clients <00:30:01.400>in <00:30:01.600>other <00:30:01.800>products.

617
00:30:03.700 --> 00:30:06.200
<00:30:03.700>Rabbitmq <00:30:03.980>AWS <00:30:04.260>look <00:30:04.540>exactly <00:30:04.820>the <00:30:05.100>same.

618
00:30:07.200 --> 00:30:10.400
<00:30:07.200>There's <00:30:07.340>tons <00:30:07.480>more <00:30:07.620>features <00:30:07.760>hidden <00:30:07.900>here, <00:30:08.040>but <00:30:08.180>the <00:30:08.320>simplest <00:30:08.460>interaction <00:30:08.600>with

619
00:30:10.400 --> 00:30:13.500
<00:30:10.400>the <00:30:10.516>Q <00:30:10.633>is <00:30:10.750>simply <00:30:10.866>there's <00:30:10.983>a <00:30:11.100>cent <00:30:11.216>operation. <00:30:11.333>There's <00:30:11.450>a <00:30:11.566>receive <00:30:11.683>operation. <00:30:11.800>Now,

620
00:30:13.500 --> 00:30:16.600
<00:30:13.500>of <00:30:13.627>course, <00:30:13.754>you <00:30:13.881>you <00:30:14.009>typically <00:30:14.136>want <00:30:14.263>to <00:30:14.390>go <00:30:14.518>and <00:30:14.645>receive <00:30:14.772>multiple <00:30:14.900>times,

621
00:30:16.600 --> 00:30:19.500
<00:30:16.600>right? <00:30:16.727>You <00:30:16.854>want <00:30:16.981>to <00:30:17.109>be <00:30:17.236>ready <00:30:17.363>for <00:30:17.490>to <00:30:17.618>deal <00:30:17.745>with <00:30:17.872>many <00:30:18.000>many

622
00:30:19.500 --> 00:30:22.900
<00:30:19.500>messages. <00:30:19.733>So <00:30:19.966>there's <00:30:20.200>also <00:30:20.433>this <00:30:20.666>this <00:30:20.900>reactive

623
00:30:22.900 --> 00:30:25.500
<00:30:22.900>path <00:30:23.075>where <00:30:23.250>you <00:30:23.425>have <00:30:23.600>this <00:30:23.775>processor <00:30:23.950>thing <00:30:24.125>and <00:30:24.300>that

624
00:30:25.500 --> 00:30:28.000
<00:30:25.500>also <00:30:25.675>exists <00:30:25.850>in <00:30:26.025>many <00:30:26.200>Frameworks <00:30:26.375>which <00:30:26.550>then <00:30:26.725>listens <00:30:26.900>to

625
00:30:28.500 --> 00:30:31.300
<00:30:28.500>a <00:30:28.627>queue <00:30:28.754>and <00:30:28.881>then <00:30:29.009>you <00:30:29.136>go <00:30:29.263>and <00:30:29.390>handle. <00:30:29.518>I <00:30:29.645>have <00:30:29.772>a <00:30:29.900>Handler

626
00:30:31.300 --> 00:30:34.300
<00:30:31.300>and <00:30:31.440>that <00:30:31.580>Handler <00:30:31.720>will <00:30:31.860>then <00:30:32.000>be <00:30:32.139>called <00:30:32.280>and <00:30:32.419>that <00:30:32.560>Handler <00:30:32.700>can

627
00:30:34.300 --> 00:30:37.700
<00:30:34.300>then <00:30:34.455>go <00:30:34.611>and <00:30:34.766>and <00:30:34.922>move <00:30:35.077>those <00:30:35.233>messages. <00:30:35.388>Well, <00:30:35.544>you'll <00:30:35.700>notice

628
00:30:37.700 --> 00:30:40.500
<00:30:37.700>here <00:30:37.980>is <00:30:38.260>we <00:30:38.540>have <00:30:38.820>no <00:30:39.100>concept

629
00:30:40.500 --> 00:30:41.800
<00:30:40.500>here <00:30:41.085>of <00:30:41.670>methods.

630
00:30:42.800 --> 00:30:43.600
<00:30:42.800>or <00:30:43.520>parameters

631
00:30:45.200 --> 00:30:47.200
<00:30:45.200>because <00:30:45.666>it's <00:30:46.133>data <00:30:46.600>blocks.

632
00:30:47.700 --> 00:30:50.500
<00:30:47.700>That <00:30:47.900>may <00:30:48.100>contain <00:30:48.300>the <00:30:48.500>notion <00:30:48.700>of <00:30:48.900>an <00:30:49.100>operation

633
00:30:50.500 --> 00:30:53.500
<00:30:50.500>like <00:30:50.655>the <00:30:50.811>subject <00:30:50.966>but <00:30:51.122>it's <00:30:51.277>really <00:30:51.433>up <00:30:51.588>to <00:30:51.744>you <00:30:51.900>of

634
00:30:53.500 --> 00:30:56.400
<00:30:53.500>how <00:30:53.627>you <00:30:53.754>use <00:30:53.881>this <00:30:54.009>how <00:30:54.136>you <00:30:54.263>want <00:30:54.390>to <00:30:54.518>go <00:30:54.645>instructory <00:30:54.772>Application. <00:30:54.900>You

635
00:30:56.400 --> 00:30:58.800
<00:30:56.400>have <00:30:56.540>full <00:30:56.680>control <00:30:56.820>you <00:30:56.960>can <00:30:57.100>go <00:30:57.240>and <00:30:57.380>use <00:30:57.520>that <00:30:57.660>queue <00:30:57.800>to

636
00:31:00.300 --> 00:31:03.300
<00:31:00.300>say <00:31:00.393>this <00:31:00.486>is <00:31:00.580>a <00:31:00.673>job <00:31:00.766>that <00:31:00.860>I <00:31:00.953>want <00:31:01.046>to <00:31:01.139>go <00:31:01.233>and <00:31:01.326>send <00:31:01.419>and <00:31:01.513>then <00:31:01.606>pick <00:31:01.700>up

637
00:31:03.300 --> 00:31:06.800
<00:31:03.300>the <00:31:03.416>job <00:31:03.533>and <00:31:03.649>process <00:31:03.766>that <00:31:03.883>job <00:31:04.000>now, <00:31:04.116>you <00:31:04.233>can <00:31:04.350>go <00:31:04.466>and <00:31:04.583>control <00:31:04.700>typically

638
00:31:06.800 --> 00:31:09.600
<00:31:06.800>in <00:31:07.000>these <00:31:07.200>processors <00:31:07.399>or <00:31:07.600>in <00:31:07.800>these <00:31:08.000>reactive <00:31:08.200>Frameworks.

639
00:31:09.600 --> 00:31:12.100
<00:31:09.600>You <00:31:09.740>can <00:31:09.879>for <00:31:10.020>instance <00:31:10.159>control <00:31:10.300>how <00:31:10.439>many <00:31:10.580>threads <00:31:10.719>you <00:31:10.860>want <00:31:11.000>to

640
00:31:12.100 --> 00:31:15.200
<00:31:12.100>have <00:31:12.300>executing <00:31:12.500>concurrently. <00:31:12.699>You <00:31:12.899>can <00:31:13.100>also <00:31:13.300>dial <00:31:13.500>that

641
00:31:15.200 --> 00:31:18.100
<00:31:15.200>number <00:31:15.340>of <00:31:15.480>threat <00:31:15.620>those <00:31:15.760>number <00:31:15.900>of <00:31:16.040>threads <00:31:16.180>up <00:31:16.320>if <00:31:16.460>you <00:31:16.600>have

642
00:31:18.100 --> 00:31:22.800
<00:31:18.100>a <00:31:18.300>binding <00:31:18.500>for <00:31:18.699>Lambda <00:31:18.899>Azure <00:31:19.100>functions <00:31:19.300>any <00:31:19.500>fast

643
00:31:22.800 --> 00:31:23.100
framework

644
00:31:23.900 --> 00:31:26.700
<00:31:23.900>And <00:31:24.075>if <00:31:24.250>you <00:31:24.425>have <00:31:24.600>this <00:31:24.775>with <00:31:24.950>kubernetes <00:31:25.125>with <00:31:25.300>keita,

645
00:31:26.700 --> 00:31:29.200
<00:31:26.700>you <00:31:26.875>can <00:31:27.050>go <00:31:27.225>and <00:31:27.400>scale <00:31:27.575>kubernetes <00:31:27.750>containers <00:31:27.925>up <00:31:28.100>and

646
00:31:29.200 --> 00:31:31.800
<00:31:29.200>down <00:31:29.327>using <00:31:29.454>queues <00:31:29.581>because <00:31:29.709>you <00:31:29.836>can <00:31:29.963>observe <00:31:30.090>the <00:31:30.218>length <00:31:30.345>of <00:31:30.472>the <00:31:30.600>queue.

647
00:31:32.400 --> 00:31:35.200
<00:31:32.400>You <00:31:32.600>can <00:31:32.800>add <00:31:33.000>and <00:31:33.200>remove <00:31:33.400>these <00:31:33.600>these <00:31:33.800>these

648
00:31:35.200 --> 00:31:36.800
<00:31:35.200>processors <00:31:35.900>very <00:31:36.600>easily.

649
00:31:38.400 --> 00:31:41.100
<00:31:38.400>So <00:31:38.555>it's <00:31:38.711>a <00:31:38.866>it's <00:31:39.022>it's <00:31:39.177>a <00:31:39.333>very <00:31:39.488>easy <00:31:39.644>way <00:31:39.800>to

650
00:31:41.100 --> 00:31:42.800
<00:31:41.100>communicate <00:31:41.800>much <00:31:42.500>simpler.

651
00:31:43.800 --> 00:31:46.200
<00:31:43.800>With <00:31:44.080>fewer <00:31:44.360>features, <00:31:44.639>but <00:31:44.919>more <00:31:45.200>control.

652
00:31:47.300 --> 00:31:48.500
<00:31:47.300>than <00:31:47.659>an <00:31:48.020>RPC <00:31:48.380>framework

653
00:31:49.200 --> 00:31:51.700
<00:31:49.200>But <00:31:49.340>it <00:31:49.480>allows <00:31:49.620>you <00:31:49.760>to <00:31:49.900>scale <00:31:50.040>your <00:31:50.180>apps. <00:31:50.320>Where's <00:31:50.460>that <00:31:50.600>used?

654
00:31:52.600 --> 00:31:54.900
<00:31:52.600>It's <00:31:52.833>used <00:31:53.066>very <00:31:53.300>extensively <00:31:53.533>in <00:31:53.766>financial <00:31:54.000>services.

655
00:31:56.100 --> 00:31:57.700
<00:31:56.100>Basically <00:31:56.566>everything <00:31:57.033>you <00:31:57.500>do.

656
00:32:00.500 --> 00:32:02.400
<00:32:00.500>Unless <00:32:00.733>you're <00:32:00.966>into <00:32:01.200>crypto <00:32:01.433>in <00:32:01.666>that <00:32:01.900>case.

657
00:32:04.700 --> 00:32:05.000
Sorry.

658
00:32:07.400 --> 00:32:10.300
<00:32:07.400>But <00:32:07.555>you <00:32:07.711>know <00:32:07.866>my <00:32:08.022>Euros <00:32:08.177>my <00:32:08.333>Euros <00:32:08.488>made <00:32:08.644>11% <00:32:08.800>on

659
00:32:10.300 --> 00:32:11.800
<00:32:10.300>the <00:32:10.570>Bitcoin <00:32:10.840>yesterday, <00:32:11.110>so <00:32:11.379>it's <00:32:11.649>great.

660
00:32:15.400 --> 00:32:16.200
<00:32:15.400>Everything <00:32:15.640>else <00:32:15.880>you <00:32:16.120>do.

661
00:32:17.500 --> 00:32:18.300
<00:32:17.500>Financial <00:32:18.220>Trading

662
00:32:20.200 --> 00:32:21.600
<00:32:20.200>ATM <00:32:21.460>rethralls

663
00:32:22.600 --> 00:32:25.000
<00:32:22.600>everything <00:32:22.774>you <00:32:22.949>do <00:32:23.125>in <00:32:23.300>retail <00:32:23.475>banking <00:32:23.649>runs <00:32:23.824>for <00:32:24.000>cues.

664
00:32:26.300 --> 00:32:27.200
<00:32:26.300>There <00:32:26.570>is <00:32:26.840>a <00:32:27.110>standard.

665
00:32:29.300 --> 00:32:32.700
<00:32:29.300>And <00:32:29.399>I <00:32:29.500>always <00:32:29.600>forget <00:32:29.700>that <00:32:29.800>long <00:32:29.899>number <00:32:30.000>but <00:32:30.100>it <00:32:30.200>has <00:32:30.300>to <00:32:30.399>do <00:32:30.500>with <00:32:30.600>22 <00:32:30.700>somewhere.

666
00:32:32.700 --> 00:32:35.600
<00:32:32.700>There's <00:32:32.933>an <00:32:33.166>ISO <00:32:33.400>standard <00:32:33.633>which <00:32:33.866>lists <00:32:34.100>all

667
00:32:35.600 --> 00:32:38.000
<00:32:35.600>those <00:32:35.879>message <00:32:36.159>exchanges <00:32:36.439>in <00:32:36.719>as <00:32:37.000>contracts.

668
00:32:38.700 --> 00:32:41.700
<00:32:38.700>And <00:32:38.933>so <00:32:39.166>that's <00:32:39.400>the <00:32:39.633>latest <00:32:39.866>standard <00:32:40.100>that's

669
00:32:41.700 --> 00:32:44.900
<00:32:41.700>being <00:32:41.840>used <00:32:41.980>and <00:32:42.120>driven <00:32:42.260>by <00:32:42.400>Swift <00:32:42.540>and <00:32:42.680>so <00:32:42.820>all <00:32:42.960>the <00:32:43.100>interbanking

670
00:32:44.900 --> 00:32:47.300
<00:32:44.900>communication <00:32:45.133>all <00:32:45.366>the <00:32:45.600>communication <00:32:45.833>that <00:32:46.066>happens <00:32:46.300>with

671
00:32:47.300 --> 00:32:50.500
<00:32:47.300>for <00:32:47.475>instance <00:32:47.649>ATMs. <00:32:47.825>All <00:32:48.000>of <00:32:48.175>that <00:32:48.350>happens <00:32:48.524>through <00:32:48.700>cues.

672
00:32:50.500 --> 00:32:51.100
Why?

673
00:32:52.500 --> 00:32:53.600
<00:32:52.500>Because <00:32:52.995>it's <00:32:53.490>reliable.

674
00:32:54.300 --> 00:32:57.100
<00:32:54.300>You <00:32:54.440>don't <00:32:54.580>want <00:32:54.720>to <00:32:54.860>go <00:32:55.000>and <00:32:55.139>lose <00:32:55.280>information. <00:32:55.419>And <00:32:55.560>if <00:32:55.700>you

675
00:32:57.100 --> 00:33:00.500
<00:32:57.100>want <00:32:57.227>if <00:32:57.354>you <00:32:57.481>can't <00:32:57.609>lose <00:32:57.736>information, <00:32:57.863>if <00:32:57.990>you <00:32:58.118>can't <00:32:58.245>lose <00:32:58.372>the <00:32:58.500>value

676
00:33:00.500 --> 00:33:03.200
<00:33:00.500>of <00:33:00.607>a <00:33:00.715>bank <00:33:00.823>transfer <00:33:00.930>then <00:33:01.038>what <00:33:01.146>you <00:33:01.253>want <00:33:01.361>to <00:33:01.469>do <00:33:01.576>is <00:33:01.684>you <00:33:01.792>want <00:33:01.900>to

677
00:33:03.200 --> 00:33:07.000
<00:33:03.200>go <00:33:03.355>and <00:33:03.511>take <00:33:03.666>the <00:33:03.822>desire <00:33:03.977>to <00:33:04.133>go <00:33:04.288>and <00:33:04.444>withdraw <00:33:04.600>money.

678
00:33:08.200 --> 00:33:09.700
<00:33:08.200>So <00:33:08.392>you're <00:33:08.585>standing <00:33:08.778>in <00:33:08.971>front <00:33:09.164>of <00:33:09.357>that <00:33:09.550>ATM?

679
00:33:10.400 --> 00:33:13.100
<00:33:10.400>And <00:33:10.555>you <00:33:10.711>expressing <00:33:10.866>the <00:33:11.022>desire <00:33:11.177>to <00:33:11.333>withdraw <00:33:11.488>money <00:33:11.644>that <00:33:11.800>is

680
00:33:13.100 --> 00:33:15.300
<00:33:13.100>being <00:33:13.449>secured <00:33:13.800>on <00:33:14.149>a <00:33:14.500>disk.

681
00:33:16.100 --> 00:33:19.400
<00:33:16.100>And <00:33:16.300>then <00:33:16.500>it's <00:33:16.699>being <00:33:16.899>moved <00:33:17.100>transactionally, <00:33:17.300>which <00:33:17.500>means

682
00:33:19.400 --> 00:33:22.700
<00:33:19.400>there's <00:33:19.575>no <00:33:19.750>duplication. <00:33:19.925>But <00:33:20.100>there's <00:33:20.275>also <00:33:20.450>no <00:33:20.625>loss <00:33:20.800>to

683
00:33:22.700 --> 00:33:25.800
<00:33:22.700>one <00:33:22.900>computer <00:33:23.100>and <00:33:23.300>to <00:33:23.500>the <00:33:23.700>next <00:33:23.900>computer <00:33:24.100>and

684
00:33:25.800 --> 00:33:28.300
<00:33:25.800>to <00:33:26.033>the <00:33:26.266>next <00:33:26.500>computer <00:33:26.733>where <00:33:26.966>your <00:33:27.200>ATM

685
00:33:28.300 --> 00:33:31.400
<00:33:28.300>withdrawal <00:33:28.455>request <00:33:28.611>is, <00:33:28.766>ultimately <00:33:28.922>then <00:33:29.077>routed <00:33:29.233>to <00:33:29.388>you <00:33:29.544>to <00:33:29.700>your

686
00:33:31.400 --> 00:33:33.800
<00:33:31.400>bank <00:33:31.507>and <00:33:31.615>there's <00:33:31.723>all <00:33:31.830>kinds <00:33:31.938>of <00:33:32.046>mechanisms <00:33:32.153>that <00:33:32.261>sit <00:33:32.369>in <00:33:32.476>the <00:33:32.584>middle <00:33:32.692>of <00:33:32.800>that.

687
00:33:35.700 --> 00:33:38.100
<00:33:35.700>So <00:33:35.875>that's <00:33:36.050>all <00:33:36.225>happening <00:33:36.400>through <00:33:36.575>queues <00:33:36.750>because <00:33:36.925>you <00:33:37.100>need

688
00:33:38.100 --> 00:33:40.700
<00:33:38.100>to <00:33:38.240>have <00:33:38.379>that <00:33:38.520>communication <00:33:38.659>be <00:33:38.800>reliable <00:33:38.939>and <00:33:39.080>it <00:33:39.219>needs <00:33:39.360>to <00:33:39.500>work.

689
00:33:42.100 --> 00:33:44.000
<00:33:42.100>even <00:33:42.379>when <00:33:42.659>there <00:33:42.939>are <00:33:43.219>communication <00:33:43.500>glitches

690
00:33:45.600 --> 00:33:48.000
<00:33:45.600>your <00:33:45.800>ATM <00:33:46.000>if <00:33:46.199>you <00:33:46.399>send <00:33:46.600>in <00:33:46.800>front <00:33:47.000>of

691
00:33:48.200 --> 00:33:49.700
<00:33:48.200>an <00:33:48.425>ATM <00:33:48.650>that <00:33:48.875>ATM <00:33:49.100>has <00:33:49.325>no <00:33:49.550>connectivity.

692
00:33:50.800 --> 00:33:51.700
<00:33:50.800>It <00:33:51.002>will <00:33:51.205>give <00:33:51.407>you <00:33:51.610>money.

693
00:33:53.700 --> 00:33:56.700
<00:33:53.700>And <00:33:53.816>it <00:33:53.933>will <00:33:54.050>give <00:33:54.166>you <00:33:54.283>money <00:33:54.400>because <00:33:54.516>there <00:33:54.633>are <00:33:54.750>some <00:33:54.866>inherent <00:33:54.983>guarantees <00:33:55.100>in

694
00:33:56.700 --> 00:33:59.100
<00:33:56.700>the <00:33:56.875>in <00:33:57.050>the <00:33:57.225>cash <00:33:57.400>card <00:33:57.575>in <00:33:57.750>the <00:33:57.925>debit <00:33:58.100>card

695
00:33:59.100 --> 00:33:59.500
<00:33:59.100>that <00:33:59.280>you <00:33:59.460>have.

696
00:34:00.300 --> 00:34:03.000
<00:34:00.300>And <00:34:00.416>that's <00:34:00.533>why <00:34:00.649>I <00:34:00.766>can <00:34:00.883>do <00:34:01.000>that. <00:34:01.116>But <00:34:01.233>if <00:34:01.350>it <00:34:01.466>gave <00:34:01.583>you <00:34:01.700>money.

697
00:34:04.800 --> 00:34:05.900
<00:34:04.800>while <00:34:05.130>it <00:34:05.460>was <00:34:05.790>disconnected

698
00:34:07.200 --> 00:34:10.700
<00:34:07.200>Then <00:34:07.327>you <00:34:07.454>know <00:34:07.581>that <00:34:07.709>message <00:34:07.836>that <00:34:07.963>it <00:34:08.090>has <00:34:08.218>stored <00:34:08.345>is <00:34:08.472>Cash <00:34:08.600>because

699
00:34:10.700 --> 00:34:13.100
<00:34:10.699>already <00:34:10.899>it <00:34:11.100>borrowed <00:34:11.299>you <00:34:11.500>money <00:34:11.699>effectively <00:34:11.899>on <00:34:12.100>your

700
00:34:13.100 --> 00:34:16.300
<00:34:13.100>card <00:34:13.207>and <00:34:13.315>now <00:34:13.423>it <00:34:13.530>needs <00:34:13.638>to <00:34:13.746>go <00:34:13.853>and <00:34:13.961>do <00:34:14.069>the <00:34:14.176>transaction, <00:34:14.284>but <00:34:14.392>you <00:34:14.500>can

701
00:34:16.300 --> 00:34:19.300
<00:34:16.300>now <00:34:16.650>perform <00:34:17.000>this <00:34:17.350>transaction <00:34:17.700>asynchronously.

702
00:34:20.100 --> 00:34:22.300
<00:34:20.100>With <00:34:20.299>these <00:34:20.500>guarantees <00:34:20.699>that <00:34:20.900>are <00:34:21.100>in <00:34:21.299>the <00:34:21.500>system.

703
00:34:23.400 --> 00:34:25.400
<00:34:23.400>And <00:34:23.555>you <00:34:23.711>don't <00:34:23.866>have <00:34:24.022>to <00:34:24.177>have <00:34:24.333>connectivity <00:34:24.488>at <00:34:24.644>all <00:34:24.800>times.

704
00:34:26.500 --> 00:34:28.200
<00:34:26.500>If <00:34:26.699>you <00:34:26.900>think <00:34:27.100>about <00:34:27.300>how <00:34:27.500>does <00:34:27.699>that <00:34:27.900>work?

705
00:34:29.300 --> 00:34:32.500
<00:34:29.300>With <00:34:29.455>you <00:34:29.611>know <00:34:29.766>paying <00:34:29.922>with <00:34:30.077>a <00:34:30.233>credit <00:34:30.388>card <00:34:30.544>on <00:34:30.700>a

706
00:34:32.500 --> 00:34:32.700
plane.

707
00:34:33.900 --> 00:34:34.500
<00:34:33.900>Well, <00:34:34.170>that's <00:34:34.440>how

708
00:34:35.400 --> 00:34:38.100
<00:34:35.400>Right, <00:34:35.575>eventually <00:34:35.750>those <00:34:35.925>transactions <00:34:36.100>get <00:34:36.275>downloaded <00:34:36.450>and <00:34:36.625>then <00:34:36.800>they

709
00:34:38.100 --> 00:34:39.000
<00:34:38.100>get <00:34:38.505>executed <00:34:38.909>later.

710
00:34:40.200 --> 00:34:43.700
<00:34:40.199>Industrial <00:34:40.399>Automation <00:34:40.600>has <00:34:40.799>a <00:34:41.000>ton <00:34:41.199>of <00:34:41.399>these <00:34:41.600>scenarios.

711
00:34:44.800 --> 00:34:47.500
<00:34:44.800>Again, <00:34:45.033>because <00:34:45.266>there <00:34:45.500>are <00:34:45.733>various <00:34:45.966>loads <00:34:46.200>and

712
00:34:47.500 --> 00:34:50.400
<00:34:47.500>because <00:34:47.850>the <00:34:48.199>Industrial <00:34:48.550>Automation <00:34:48.900>everything

713
00:34:50.400 --> 00:34:51.500
<00:34:50.400>needs <00:34:50.647>to <00:34:50.895>go <00:34:51.142>on <00:34:51.389>attack.

714
00:34:52.900 --> 00:34:55.400
<00:34:52.900>Right. <00:34:53.075>It's <00:34:53.250>all <00:34:53.425>in <00:34:53.600>real <00:34:53.775>time. <00:34:53.950>And <00:34:54.125>you <00:34:54.300>cannot

715
00:34:55.400 --> 00:34:58.300
<00:34:55.400>execute <00:34:55.600>real-time <00:34:55.800>unless <00:34:56.000>you <00:34:56.200>have <00:34:56.400>schedulers <00:34:56.600>which <00:34:56.800>are

716
00:34:58.300 --> 00:35:01.600
<00:34:58.300>scheduled <00:34:58.475>exactly <00:34:58.650>when <00:34:58.825>work <00:34:59.000>gets <00:34:59.175>done <00:34:59.350>and <00:34:59.525>scheduling <00:34:59.700>exactly

717
00:35:01.600 --> 00:35:03.900
<00:35:01.600>how <00:35:01.799>when <00:35:02.000>work <00:35:02.200>gets <00:35:02.400>done <00:35:02.600>happens <00:35:02.799>to <00:35:03.000>recuse.

718
00:35:04.600 --> 00:35:07.400
<00:35:04.600>Abstracted <00:35:04.799>by <00:35:05.000>all <00:35:05.200>those <00:35:05.400>buses <00:35:05.600>are <00:35:05.799>effectively <00:35:06.000>executing

719
00:35:07.400 --> 00:35:08.000
<00:35:07.400>through <00:35:07.940>cues.

720
00:35:08.800 --> 00:35:09.800
<00:35:08.800>connected <00:35:09.700>car

721
00:35:12.300 --> 00:35:15.700
<00:35:12.300>when <00:35:12.533>you <00:35:12.766>are <00:35:13.000>giving <00:35:13.233>a <00:35:13.466>command <00:35:13.700>to

722
00:35:15.700 --> 00:35:19.200
<00:35:15.700>start <00:35:15.933>the <00:35:16.166>climate <00:35:16.399>control <00:35:16.633>system <00:35:16.866>on <00:35:17.100>your

723
00:35:18.200 --> 00:35:21.000
<00:35:18.200>Porsche <00:35:18.666>as <00:35:19.133>we <00:35:19.600>all

724
00:35:21.000 --> 00:35:21.200
have.

725
00:35:23.100 --> 00:35:26.500
<00:35:23.100>Right, <00:35:23.450>then <00:35:23.799>that <00:35:24.150>message <00:35:24.500>needs

726
00:35:26.500 --> 00:35:27.200
<00:35:26.500>to <00:35:26.710>go <00:35:26.920>and <00:35:27.129>reach.

727
00:35:27.800 --> 00:35:28.500
<00:35:27.800>that <00:35:28.430>car

728
00:35:30.800 --> 00:35:33.200
<00:35:30.800>How <00:35:30.955>does <00:35:31.111>it <00:35:31.266>reach <00:35:31.422>that <00:35:31.577>car <00:35:31.733>and <00:35:31.888>it's <00:35:32.044>just <00:35:32.200>one

729
00:35:33.200 --> 00:35:37.300
<00:35:33.200>example <00:35:33.399>of <00:35:33.600>those <00:35:33.799>communication <00:35:34.000>with <00:35:34.200>vehicles <00:35:34.399>is <00:35:34.600>notoriously

730
00:35:36.300 --> 00:35:39.900
<00:35:36.300>difficult <00:35:36.533>because <00:35:36.766>they <00:35:37.000>sit <00:35:37.233>in <00:35:37.466>terrible <00:35:37.700>networking

731
00:35:39.900 --> 00:35:42.000
<00:35:39.900>conditions. <00:35:40.180>Ultimately <00:35:40.460>there <00:35:40.740>are <00:35:41.020>you <00:35:41.300>know

732
00:35:42.300 --> 00:35:44.600
<00:35:42.300>using <00:35:42.580>German <00:35:42.860>cellular <00:35:43.140>networks, <00:35:43.420>which <00:35:43.700>means

733
00:35:46.600 --> 00:35:48.900
<00:35:46.600>they <00:35:46.799>are <00:35:47.000>on <00:35:47.200>edge <00:35:47.400>95% <00:35:47.600>of <00:35:47.799>the <00:35:48.000>time.

734
00:35:51.200 --> 00:35:54.700
<00:35:51.200>And <00:35:51.375>so <00:35:51.549>communication <00:35:51.725>may <00:35:51.899>be <00:35:52.075>difficult <00:35:52.250>and <00:35:52.424>using <00:35:52.600>cues

735
00:35:54.700 --> 00:35:56.500
<00:35:54.700>will <00:35:54.933>help <00:35:55.166>to <00:35:55.399>make <00:35:55.633>that <00:35:55.866>more <00:35:56.100>robust.

736
00:35:57.300 --> 00:36:01.300
<00:35:57.300>So <00:35:57.440>it's <00:35:57.580>a <00:35:57.720>terrible <00:35:57.860>idea <00:35:58.000>to <00:35:58.140>go <00:35:58.280>and <00:35:58.420>use <00:35:58.560>RPC <00:35:58.700>Based

737
00:36:00.300 --> 00:36:03.400
<00:36:00.300>Services <00:36:00.533>for <00:36:00.766>that <00:36:01.000>sort <00:36:01.233>of <00:36:01.466>communication <00:36:01.700>when

738
00:36:03.400 --> 00:36:06.000
<00:36:03.400>communication <00:36:03.633>is <00:36:03.866>bad <00:36:04.100>because <00:36:04.333>you <00:36:04.566>want <00:36:04.800>to

739
00:36:06.500 --> 00:36:09.500
<00:36:06.500>be <00:36:06.733>more <00:36:06.966>intentional <00:36:07.200>in <00:36:07.433>going <00:36:07.666>replicating <00:36:07.900>those

740
00:36:09.500 --> 00:36:12.400
<00:36:09.500>commands <00:36:09.627>or <00:36:09.754>replicating <00:36:09.881>those <00:36:10.009>messages. <00:36:10.136>You <00:36:10.263>also <00:36:10.390>want <00:36:10.518>to <00:36:10.645>be <00:36:10.772>very <00:36:10.900>intentional

741
00:36:12.400 --> 00:36:13.400
<00:36:12.400>about <00:36:12.850>timeouts <00:36:13.300>Etc.

742
00:36:14.900 --> 00:36:17.500
<00:36:14.900>Tons <00:36:15.075>and <00:36:15.250>tons <00:36:15.425>and <00:36:15.600>tons <00:36:15.775>of <00:36:15.950>scenarios <00:36:16.125>where <00:36:16.300>cues

743
00:36:17.500 --> 00:36:20.000
<00:36:17.500>are <00:36:17.700>simply <00:36:17.900>a <00:36:18.100>better <00:36:18.300>choice <00:36:18.500>than <00:36:18.700>using <00:36:18.900>RPC.

744
00:36:21.100 --> 00:36:24.400
<00:36:21.100>What <00:36:21.255>they're <00:36:21.411>also <00:36:21.566>are <00:36:21.722>there. <00:36:21.877>They're <00:36:22.033>very <00:36:22.188>great <00:36:22.344>safe <00:36:22.500>Network

745
00:36:24.400 --> 00:36:24.800
Bridges.

746
00:36:26.400 --> 00:36:30.400
<00:36:26.400>When <00:36:26.633>you <00:36:26.866>think <00:36:27.100>about <00:36:27.333>dmz's <00:36:27.566>demilitarized <00:36:27.800>zones

747
00:36:30.400 --> 00:36:33.600
<00:36:30.400>or <00:36:30.575>you <00:36:30.750>think <00:36:30.925>about <00:36:31.100>you <00:36:31.275>know, <00:36:31.450>Network <00:36:31.625>segmentation <00:36:31.800>and

748
00:36:33.600 --> 00:36:34.800
acute?

749
00:36:35.600 --> 00:36:36.400
<00:36:35.600>Is <00:36:35.840>a <00:36:36.080>great <00:36:36.320>way.

750
00:36:37.400 --> 00:36:40.400
<00:36:37.400>And <00:36:37.575>that's <00:36:37.750>true <00:36:37.925>for <00:36:38.100>most <00:36:38.275>Cloud <00:36:38.450>cues <00:36:38.625>where <00:36:38.800>you

751
00:36:40.400 --> 00:36:42.800
<00:36:40.400>can <00:36:40.555>go <00:36:40.711>and <00:36:40.866>maintain <00:36:41.022>an <00:36:41.177>application <00:36:41.333>in <00:36:41.488>an <00:36:41.644>isolated <00:36:41.800>vnet.

752
00:36:44.200 --> 00:36:47.100
<00:36:44.200>And <00:36:44.339>another <00:36:44.480>application <00:36:44.620>in <00:36:44.759>isolated <00:36:44.899>vnet <00:36:45.040>that <00:36:45.180>has <00:36:45.319>no <00:36:45.460>access <00:36:45.600>from

753
00:36:47.100 --> 00:36:50.800
<00:36:47.100>the <00:36:47.255>outside <00:36:47.411>world <00:36:47.566>with <00:36:47.722>RPC <00:36:47.877>called <00:36:48.033>services <00:36:48.188>or <00:36:48.344>networking, <00:36:48.500>but

754
00:36:50.800 --> 00:36:52.900
<00:36:50.800>it <00:36:51.033>will <00:36:51.266>go <00:36:51.500>and <00:36:51.733>read <00:36:51.966>from <00:36:52.200>cues.

755
00:36:53.800 --> 00:36:56.400
<00:36:53.800>The <00:36:53.940>great <00:36:54.080>thing <00:36:54.220>here <00:36:54.360>is <00:36:54.500>that <00:36:54.640>the <00:36:54.780>Q <00:36:54.920>is <00:36:55.060>a <00:36:55.200>pull

756
00:36:56.400 --> 00:36:59.200
<00:36:56.400>mechanism <00:36:56.575>use <00:36:56.750>Reit <00:36:56.925>you <00:36:57.100>attach <00:36:57.275>to <00:36:57.450>the <00:36:57.625>queue <00:36:57.800>and

757
00:36:59.200 --> 00:37:02.300
<00:36:59.200>reads <00:36:59.327>and <00:36:59.454>you <00:36:59.581>pull <00:36:59.709>things <00:36:59.836>out <00:36:59.963>which <00:37:00.090>means <00:37:00.218>nobody <00:37:00.345>can <00:37:00.472>go <00:37:00.600>and

758
00:37:02.300 --> 00:37:02.700
<00:37:02.300>push <00:37:02.480>on <00:37:02.660>you.

759
00:37:03.400 --> 00:37:06.500
<00:37:03.400>So <00:37:03.516>if <00:37:03.633>you <00:37:03.750>have <00:37:03.866>a <00:37:03.983>queue <00:37:04.100>that <00:37:04.216>can <00:37:04.333>attach <00:37:04.450>to <00:37:04.566>multiple <00:37:04.683>v-nets <00:37:04.800>at

760
00:37:06.500 --> 00:37:09.100
<00:37:06.500>the <00:37:06.627>same <00:37:06.754>time. <00:37:06.881>You <00:37:07.009>have <00:37:07.136>a <00:37:07.263>super <00:37:07.390>safe <00:37:07.518>bridge <00:37:07.645>where <00:37:07.772>all <00:37:07.900>the

761
00:37:09.100 --> 00:37:12.200
<00:37:09.100>communication <00:37:09.207>happens <00:37:09.315>at <00:37:09.423>layer <00:37:09.530>seven <00:37:09.638>of <00:37:09.746>them <00:37:09.853>that <00:37:09.961>work <00:37:10.069>and <00:37:10.176>there's <00:37:10.284>no <00:37:10.392>way <00:37:10.500>of

762
00:37:12.200 --> 00:37:15.900
<00:37:12.200>going <00:37:12.399>to <00:37:12.600>hack <00:37:12.799>around <00:37:13.000>the <00:37:13.200>the <00:37:13.399>network <00:37:13.600>segmentation

763
00:37:15.900 --> 00:37:17.600
<00:37:15.900>boundaries, <00:37:16.250>but <00:37:16.600>communication <00:37:16.950>still <00:37:17.300>happens.

764
00:37:18.200 --> 00:37:21.600
<00:37:18.200>Super <00:37:18.399>common <00:37:18.600>in <00:37:18.799>high <00:37:19.000>in <00:37:19.200>highest <00:37:19.399>security <00:37:19.600>environments

765
00:37:21.600 --> 00:37:23.600
<00:37:21.600>to <00:37:21.880>go <00:37:22.160>and <00:37:22.440>Bridge <00:37:22.720>via <00:37:23.000>cues.

766
00:37:25.400 --> 00:37:26.700
<00:37:25.400>So <00:37:25.985>some <00:37:26.569>features.

767
00:37:28.600 --> 00:37:31.400
<00:37:28.600>Competing <00:37:28.950>consumers <00:37:29.299>is <00:37:29.650>the <00:37:30.000>most

768
00:37:31.400 --> 00:37:34.900
<00:37:31.400>important <00:37:31.575>feature. <00:37:31.750>I've <00:37:31.925>already <00:37:32.100>talked <00:37:32.275>about <00:37:32.450>that <00:37:32.625>exclusive <00:37:32.800>assignment

769
00:37:34.900 --> 00:37:38.300
<00:37:34.900>of <00:37:35.100>ownership <00:37:35.300>of <00:37:35.500>a <00:37:35.700>job <00:37:35.900>to <00:37:36.100>AQ <00:37:36.300>to

770
00:37:37.300 --> 00:37:38.700
<00:37:37.300>a <00:37:38.560>consumer.

771
00:37:39.700 --> 00:37:42.500
<00:37:39.700>You <00:37:39.839>have <00:37:39.980>many <00:37:40.120>many <00:37:40.259>clients <00:37:40.399>which <00:37:40.540>are <00:37:40.680>coming <00:37:40.819>and <00:37:40.960>want <00:37:41.100>to

772
00:37:42.500 --> 00:37:45.000
<00:37:42.500>get <00:37:42.675>something <00:37:42.850>done. <00:37:43.025>There's <00:37:43.200>only <00:37:43.375>two <00:37:43.550>processes <00:37:43.725>at <00:37:43.900>the

773
00:37:45.300 --> 00:37:48.300
<00:37:45.300>back. <00:37:45.455>Maybe <00:37:45.611>it's <00:37:45.766>a <00:37:45.922>constrained <00:37:46.077>resource <00:37:46.233>like <00:37:46.388>a <00:37:46.544>credit <00:37:46.700>card

774
00:37:48.300 --> 00:37:51.400
<00:37:48.300>processor, <00:37:48.500>right? <00:37:48.700>You <00:37:48.900>only <00:37:49.100>get <00:37:49.300>two <00:37:49.500>transactions <00:37:49.700>per

775
00:37:51.400 --> 00:37:54.500
<00:37:51.400>for <00:37:51.633>for <00:37:51.866>second <00:37:52.100>or <00:37:52.333>so, <00:37:52.566>right? <00:37:52.800>So

776
00:37:54.500 --> 00:37:57.700
<00:37:54.500>you <00:37:54.587>have <00:37:54.675>to <00:37:54.762>go <00:37:54.850>and <00:37:54.937>deal <00:37:55.025>with <00:37:55.112>them <00:37:55.200>which <00:37:55.287>means <00:37:55.375>you <00:37:55.462>put <00:37:55.550>that <00:37:55.637>behind <00:37:55.725>the <00:37:55.812>queue <00:37:55.900>and

777
00:37:57.700 --> 00:38:00.300
<00:37:57.700>then <00:37:57.933>these <00:37:58.166>competing <00:37:58.399>consumers <00:37:58.633>which <00:37:58.866>means <00:37:59.100>there's

778
00:38:00.300 --> 00:38:03.800
<00:38:00.300>multiple <00:38:00.427>consumers <00:38:00.554>pulling <00:38:00.681>on <00:38:00.809>the <00:38:00.936>Queue <00:38:01.063>at <00:38:01.190>the <00:38:01.318>same <00:38:01.445>time. <00:38:01.572>They <00:38:01.700>each

779
00:38:03.800 --> 00:38:06.800
<00:38:03.800>get <00:38:03.975>a <00:38:04.150>job, <00:38:04.325>but <00:38:04.500>there's <00:38:04.675>a <00:38:04.850>guarantee <00:38:05.025>that <00:38:05.200>no

780
00:38:06.800 --> 00:38:09.500
<00:38:06.800>one <00:38:06.975>job <00:38:07.150>is <00:38:07.325>being <00:38:07.500>assigned <00:38:07.675>to <00:38:07.850>two <00:38:08.025>consumers <00:38:08.200>at

781
00:38:09.500 --> 00:38:11.400
<00:38:09.500>once <00:38:09.850>you <00:38:10.200>get <00:38:10.550>exclusive <00:38:10.900>management.

782
00:38:12.700 --> 00:38:14.800
<00:38:12.700>And <00:38:12.855>then <00:38:13.011>you <00:38:13.166>can <00:38:13.322>observe <00:38:13.477>the <00:38:13.633>length <00:38:13.788>of <00:38:13.944>the <00:38:14.100>Q.

783
00:38:16.400 --> 00:38:18.800
<00:38:16.400>To <00:38:16.575>determine <00:38:16.750>how <00:38:16.925>many <00:38:17.100>of <00:38:17.275>these <00:38:17.450>consumers <00:38:17.625>you <00:38:17.800>need?

784
00:38:20.500 --> 00:38:21.400
<00:38:20.500>load <00:38:21.310>leveling

785
00:38:22.500 --> 00:38:25.100
<00:38:22.500>is <00:38:22.675>another <00:38:22.850>aspect <00:38:23.025>of <00:38:23.200>this <00:38:23.375>or <00:38:23.550>a <00:38:23.725>facet <00:38:23.900>of

786
00:38:25.100 --> 00:38:28.600
<00:38:25.100>this <00:38:25.299>where <00:38:25.500>you <00:38:25.700>may <00:38:25.900>get <00:38:26.100>a <00:38:26.299>sudden <00:38:26.500>burst

787
00:38:28.600 --> 00:38:29.400
<00:38:28.600>of <00:38:29.320>requests.

788
00:38:30.300 --> 00:38:34.200
<00:38:30.300>A <00:38:30.500>sudden <00:38:30.700>burst <00:38:30.900>of <00:38:31.100>telemetry <00:38:31.300>of <00:38:31.500>of <00:38:31.700>jobs

789
00:38:33.200 --> 00:38:37.200
<00:38:33.200>of <00:38:33.375>whatever <00:38:33.549>kind <00:38:33.725>of <00:38:33.899>messages <00:38:34.075>you <00:38:34.250>might <00:38:34.424>get <00:38:34.600>and

790
00:38:36.200 --> 00:38:39.600
<00:38:36.200>you <00:38:36.339>need <00:38:36.480>to <00:38:36.620>go <00:38:36.759>and <00:38:36.899>deal <00:38:37.040>with <00:38:37.180>them. <00:38:37.319>But <00:38:37.460>your <00:38:37.600>system

791
00:38:39.600 --> 00:38:42.600
<00:38:39.600>may <00:38:39.775>not <00:38:39.950>be <00:38:40.125>ready <00:38:40.299>for <00:38:40.475>it. <00:38:40.650>Famously <00:38:40.825>the <00:38:41.000>start

792
00:38:42.600 --> 00:38:44.700
<00:38:42.600>of <00:38:42.833>the <00:38:43.066>who <00:38:43.299>knows <00:38:43.533>Halo <00:38:43.766>the <00:38:44.000>game.

793
00:38:46.900 --> 00:38:49.400
<00:38:46.900>Great. <00:38:47.100>So <00:38:47.300>the <00:38:47.500>start <00:38:47.700>at <00:38:47.900>the <00:38:48.100>launch <00:38:48.300>of

794
00:38:49.400 --> 00:38:50.000
<00:38:49.400>Halo <00:38:49.940>4.

795
00:38:51.200 --> 00:38:53.700
<00:38:51.200>A <00:38:51.433>few <00:38:51.666>years <00:38:51.899>back <00:38:52.133>the <00:38:52.366>back <00:38:52.600>end.

796
00:38:54.400 --> 00:38:56.400
<00:38:54.400>Was <00:38:54.633>down <00:38:54.866>for <00:38:55.100>the <00:38:55.333>entire <00:38:55.566>launch <00:38:55.800>day.

797
00:38:57.300 --> 00:39:00.200
<00:38:57.300>Nobody <00:38:57.475>realized <00:38:57.650>that <00:38:57.825>because <00:38:58.000>it <00:38:58.175>was <00:38:58.350>all <00:38:58.525>isolated <00:38:58.700>by

798
00:39:00.200 --> 00:39:03.500
<00:39:00.200>queues. <00:39:00.327>They <00:39:00.454>could <00:39:00.581>get <00:39:00.709>the <00:39:00.836>backend <00:39:00.963>back <00:39:01.090>up <00:39:01.218>and <00:39:01.345>then <00:39:01.472>they <00:39:01.600>processed

799
00:39:03.500 --> 00:39:04.400
<00:39:03.500>all <00:39:03.635>the <00:39:03.770>data <00:39:03.905>that <00:39:04.040>came <00:39:04.175>through <00:39:04.310>it.

800
00:39:05.800 --> 00:39:08.500
<00:39:05.800>Because <00:39:05.916>there <00:39:06.033>was <00:39:06.150>a <00:39:06.266>buffer <00:39:06.383>in <00:39:06.500>the <00:39:06.616>middle <00:39:06.733>that <00:39:06.850>took <00:39:06.966>all <00:39:07.083>the <00:39:07.200>burst

801
00:39:08.500 --> 00:39:11.600
<00:39:08.500>information <00:39:08.700>and <00:39:08.900>then <00:39:09.100>stored <00:39:09.300>it <00:39:09.500>and <00:39:09.700>that <00:39:09.900>ran

802
00:39:11.600 --> 00:39:14.400
<00:39:11.600>through <00:39:11.700>our <00:39:11.799>cues <00:39:11.900>and <00:39:12.000>then <00:39:12.100>they <00:39:12.200>could <00:39:12.299>go <00:39:12.400>and <00:39:12.500>drain <00:39:12.600>it <00:39:12.700>in <00:39:12.799>the <00:39:12.900>backend <00:39:13.000>and

803
00:39:14.400 --> 00:39:17.300
<00:39:14.400>everybody's <00:39:14.680>careers <00:39:14.960>as <00:39:15.240>Spartans <00:39:15.520>was <00:39:15.800>saved.

804
00:39:19.500 --> 00:39:22.200
<00:39:19.500>So <00:39:19.700>low <00:39:19.900>leveling <00:39:20.100>makes <00:39:20.300>the <00:39:20.500>load <00:39:20.700>that <00:39:20.900>comes

805
00:39:22.200 --> 00:39:26.000
<00:39:22.200>in <00:39:22.399>on <00:39:22.600>the <00:39:22.799>front <00:39:23.000>even <00:39:23.200>because <00:39:23.399>the <00:39:23.600>processors

806
00:39:25.000 --> 00:39:26.400
pull.

807
00:39:27.800 --> 00:39:30.600
<00:39:27.800>Because <00:39:27.975>the <00:39:28.150>processor <00:39:28.325>is <00:39:28.500>pull <00:39:28.675>you <00:39:28.850>can <00:39:29.025>never <00:39:29.200>overload

808
00:39:30.600 --> 00:39:30.800
them.

809
00:39:31.700 --> 00:39:34.900
<00:39:31.700>The <00:39:31.839>system <00:39:31.980>will <00:39:32.120>be <00:39:32.259>slow <00:39:32.399>but <00:39:32.540>it <00:39:32.680>will <00:39:32.819>never <00:39:32.960>be <00:39:33.100>overstressed.

810
00:39:34.900 --> 00:39:37.600
<00:39:34.900>And <00:39:35.040>if <00:39:35.180>the <00:39:35.320>system <00:39:35.460>is <00:39:35.600>slow, <00:39:35.740>which <00:39:35.880>means <00:39:36.020>that <00:39:36.160>look <00:39:36.300>that

811
00:39:37.600 --> 00:39:40.500
<00:39:37.600>that <00:39:37.833>Q <00:39:38.066>is <00:39:38.299>long, <00:39:38.533>then <00:39:38.766>you <00:39:39.000>scale

812
00:39:40.500 --> 00:39:44.800
<00:39:40.500>it <00:39:40.655>up. <00:39:40.811>And <00:39:40.966>again <00:39:41.122>if <00:39:41.277>you're <00:39:41.433>using <00:39:41.588>kubernetes <00:39:41.744>cada <00:39:41.900>Keda

813
00:39:43.800 --> 00:39:46.700
<00:39:43.800>is <00:39:44.266>a <00:39:44.733>technology <00:39:45.200>between

814
00:39:46.700 --> 00:39:49.500
<00:39:46.700>going <00:39:46.875>scale <00:39:47.049>the <00:39:47.225>number <00:39:47.399>of <00:39:47.575>your <00:39:47.750>containers <00:39:47.924>based <00:39:48.100>on

815
00:39:49.500 --> 00:39:52.200
<00:39:49.500>the <00:39:49.607>length <00:39:49.715>of <00:39:49.823>a <00:39:49.930>queue <00:39:50.038>and <00:39:50.146>it <00:39:50.253>has <00:39:50.361>a <00:39:50.469>bunch <00:39:50.576>of <00:39:50.684>these <00:39:50.792>kinds <00:39:50.900>of

816
00:39:52.200 --> 00:39:55.700
<00:39:52.200>processors <00:39:52.480>or <00:39:52.759>sorry <00:39:53.040>those <00:39:53.319>adapters, <00:39:53.600>which

817
00:39:55.700 --> 00:39:57.700
<00:39:55.700>can <00:39:55.980>observe <00:39:56.259>multiple <00:39:56.540>kinds <00:39:56.819>of <00:39:57.100>cues.

818
00:39:59.400 --> 00:40:02.100
<00:39:59.400>And <00:39:59.507>now <00:39:59.615>I'm <00:39:59.723>going <00:39:59.830>to <00:39:59.938>also <00:40:00.046>in <00:40:00.153>the <00:40:00.261>interest <00:40:00.369>of <00:40:00.476>time. <00:40:00.584>I'm <00:40:00.692>going <00:40:00.800>to

819
00:40:02.100 --> 00:40:05.900
<00:40:02.100>speed <00:40:02.216>a <00:40:02.333>little <00:40:02.450>through <00:40:02.566>a <00:40:02.683>number <00:40:02.799>of <00:40:02.916>slides <00:40:03.033>that <00:40:03.150>are <00:40:03.266>brought <00:40:03.383>and <00:40:03.500>this

820
00:40:05.900 --> 00:40:08.500
<00:40:05.900>is <00:40:06.040>not <00:40:06.180>again <00:40:06.320>not <00:40:06.460>a <00:40:06.600>product <00:40:06.740>pitch, <00:40:06.880>but <00:40:07.020>I'm <00:40:07.160>using <00:40:07.300>some

821
00:40:08.500 --> 00:40:11.300
<00:40:08.500>of <00:40:08.675>the <00:40:08.850>features <00:40:09.025>that <00:40:09.200>we <00:40:09.375>have <00:40:09.550>as <00:40:09.725>an <00:40:09.900>example

822
00:40:11.300 --> 00:40:15.100
<00:40:11.300>of <00:40:11.455>features <00:40:11.611>that <00:40:11.766>other <00:40:11.922>cues <00:40:12.077>have <00:40:12.233>too <00:40:12.388>so <00:40:12.544>you're <00:40:12.700>sending

823
00:40:14.100 --> 00:40:17.500
<00:40:14.100>messages <00:40:14.380>to <00:40:14.660>a <00:40:14.940>queue <00:40:15.220>and <00:40:15.500>what

824
00:40:17.500 --> 00:40:20.000
<00:40:17.500>the <00:40:17.616>queue <00:40:17.733>will <00:40:17.850>do <00:40:17.966>is <00:40:18.083>we'll <00:40:18.200>go <00:40:18.316>and <00:40:18.433>create <00:40:18.550>a <00:40:18.666>sequence <00:40:18.783>of <00:40:18.900>them.

825
00:40:21.100 --> 00:40:24.200
<00:40:21.100>So <00:40:21.207>it <00:40:21.315>will <00:40:21.423>label <00:40:21.530>them <00:40:21.638>with <00:40:21.746>a <00:40:21.853>sequence <00:40:21.961>number. <00:40:22.069>It <00:40:22.176>will <00:40:22.284>also <00:40:22.392>it <00:40:22.500>will

826
00:40:24.200 --> 00:40:27.500
<00:40:24.200>also <00:40:24.339>stamp <00:40:24.480>them <00:40:24.620>with <00:40:24.759>a <00:40:24.899>timestamp <00:40:25.040>of <00:40:25.180>when <00:40:25.319>those <00:40:25.460>messages <00:40:25.600>arrive.

827
00:40:27.500 --> 00:40:30.400
<00:40:27.500>So <00:40:27.640>if <00:40:27.780>you <00:40:27.920>need <00:40:28.060>to <00:40:28.200>have <00:40:28.340>an <00:40:28.480>authoritative <00:40:28.620>clock <00:40:28.760>in <00:40:28.900>your

828
00:40:30.400 --> 00:40:30.700
system.

829
00:40:31.900 --> 00:40:34.300
<00:40:31.900>Because <00:40:32.055>we <00:40:32.211>have <00:40:32.366>so <00:40:32.522>many <00:40:32.677>clocks <00:40:32.833>right <00:40:32.988>in <00:40:33.144>the <00:40:33.300>often

830
00:40:34.300 --> 00:40:37.300
<00:40:34.300>need <00:40:34.400>to <00:40:34.500>have <00:40:34.600>a <00:40:34.700>tiebreaker <00:40:34.800>clock. <00:40:34.900>Well, <00:40:35.000>the <00:40:35.100>queue <00:40:35.200>will <00:40:35.300>give <00:40:35.400>you <00:40:35.500>one <00:40:35.600>because <00:40:35.700>the

831
00:40:37.300 --> 00:40:38.800
<00:40:37.300>queue <00:40:37.525>will <00:40:37.750>note <00:40:37.975>the <00:40:38.200>time <00:40:38.425>of <00:40:38.650>arrival.

832
00:40:39.500 --> 00:40:42.800
<00:40:39.500>You <00:40:39.733>can <00:40:39.966>also <00:40:40.200>go <00:40:40.433>and <00:40:40.666>the <00:40:40.900>the

833
00:40:42.800 --> 00:40:45.900
<00:40:42.800>sorry <00:40:43.266>the <00:40:43.733>the <00:40:44.200>way

834
00:40:45.900 --> 00:40:49.100
<00:40:45.900>how <00:40:46.075>messages <00:40:46.250>are <00:40:46.425>being <00:40:46.600>delivered <00:40:46.775>to <00:40:46.950>Consumers <00:40:47.125>is <00:40:47.300>that

835
00:40:48.100 --> 00:40:51.800
<00:40:48.100>it <00:40:48.275>always <00:40:48.450>considers <00:40:48.625>the <00:40:48.799>oldest <00:40:48.975>one <00:40:49.150>that's <00:40:49.325>available <00:40:49.500>and

836
00:40:51.800 --> 00:40:54.900
<00:40:51.800>gives <00:40:51.955>that <00:40:52.111>to <00:40:52.266>the <00:40:52.422>next <00:40:52.577>Consumer. <00:40:52.733>That's <00:40:52.888>how <00:40:53.044>the <00:40:53.200>order

837
00:40:54.900 --> 00:40:56.600
<00:40:54.900>works <00:40:55.600>right <00:40:56.300>and

838
00:40:58.300 --> 00:41:01.200
<00:40:58.300>that <00:40:58.580>will <00:40:58.860>then <00:40:59.140>cause <00:40:59.420>those <00:40:59.700>messages

839
00:41:01.200 --> 00:41:04.700
<00:41:01.200>when <00:41:01.355>the <00:41:01.511>messages <00:41:01.666>are <00:41:01.822>being <00:41:01.977>handed <00:41:02.133>out. <00:41:02.288>They're <00:41:02.444>exclusively <00:41:02.600>locked

840
00:41:04.700 --> 00:41:05.200
<00:41:04.700>to <00:41:04.924>a <00:41:05.149>consumer.

841
00:41:06.400 --> 00:41:09.300
<00:41:06.400>And <00:41:06.540>while <00:41:06.680>that <00:41:06.820>consumer <00:41:06.960>has <00:41:07.100>that <00:41:07.240>message <00:41:07.380>in <00:41:07.520>hands <00:41:07.660>that <00:41:07.800>message

842
00:41:09.300 --> 00:41:12.000
<00:41:09.300>retains <00:41:09.500>is <00:41:09.700>retained <00:41:09.900>in <00:41:10.100>The <00:41:10.300>Brokerage <00:41:10.500>in <00:41:10.700>the

843
00:41:12.100 --> 00:41:12.500
<00:41:12.100>state <00:41:12.279>of <00:41:12.460>acquire.

844
00:41:13.400 --> 00:41:16.600
<00:41:13.400>And <00:41:13.507>then <00:41:13.615>the <00:41:13.723>consumer <00:41:13.830>can <00:41:13.938>go <00:41:14.046>and <00:41:14.153>decide <00:41:14.261>what <00:41:14.369>to <00:41:14.476>do <00:41:14.584>with <00:41:14.692>it. <00:41:14.800>So

845
00:41:16.600 --> 00:41:19.000
<00:41:16.600>it <00:41:16.740>has <00:41:16.880>full <00:41:17.020>control <00:41:17.160>and <00:41:17.299>if <00:41:17.440>the <00:41:17.580>cube <00:41:17.720>consumer <00:41:17.860>says <00:41:18.000>I

846
00:41:19.400 --> 00:41:22.100
<00:41:19.400>accept <00:41:19.540>this <00:41:19.680>message <00:41:19.820>then <00:41:19.960>the <00:41:20.100>message <00:41:20.240>is <00:41:20.380>being <00:41:20.520>removed <00:41:20.660>from <00:41:20.800>the

847
00:41:22.100 --> 00:41:22.700
broker.

848
00:41:23.500 --> 00:41:24.600
<00:41:23.500>And <00:41:23.698>the <00:41:23.896>work <00:41:24.094>has <00:41:24.292>been <00:41:24.490>done.

849
00:41:25.600 --> 00:41:28.300
<00:41:25.600>But <00:41:25.799>the <00:41:26.000>consumer <00:41:26.200>can <00:41:26.400>also <00:41:26.600>say <00:41:26.799>I <00:41:27.000>need

850
00:41:28.300 --> 00:41:31.300
<00:41:28.300>to <00:41:28.440>I <00:41:28.580>want <00:41:28.720>to <00:41:28.860>go <00:41:29.000>and <00:41:29.140>reject <00:41:29.280>that <00:41:29.420>message <00:41:29.560>and <00:41:29.700>then

851
00:41:31.300 --> 00:41:34.200
<00:41:31.300>I <00:41:31.580>will <00:41:31.860>that <00:41:32.140>message <00:41:32.420>will <00:41:32.700>put

852
00:41:34.200 --> 00:41:37.500
<00:41:34.200>on <00:41:34.316>the <00:41:34.433>side <00:41:34.549>putting <00:41:34.666>on <00:41:34.783>the <00:41:34.899>side. <00:41:35.016>It's <00:41:35.133>done <00:41:35.250>using <00:41:35.366>a <00:41:35.483>debt <00:41:35.600>letter

853
00:41:37.500 --> 00:41:40.500
<00:41:37.500>Q <00:41:37.655>the <00:41:37.811>dead <00:41:37.966>letter <00:41:38.122>Q <00:41:38.277>is <00:41:38.433>another <00:41:38.588>feature <00:41:38.744>that <00:41:38.900>is

854
00:41:40.500 --> 00:41:42.300
<00:41:40.500>kind <00:41:40.733>of <00:41:40.966>the <00:41:41.200>the <00:41:41.433>bad <00:41:41.666>mail <00:41:41.900>bag.

855
00:41:43.100 --> 00:41:46.600
<00:41:43.100>There's <00:41:43.255>also <00:41:43.411>typically <00:41:43.566>available <00:41:43.722>in <00:41:43.877>those <00:41:44.033>message <00:41:44.188>Brokers. <00:41:44.344>If <00:41:44.500>message

856
00:41:46.600 --> 00:41:49.100
<00:41:46.600>processing <00:41:46.740>has <00:41:46.880>an <00:41:47.020>error <00:41:47.160>you <00:41:47.299>can <00:41:47.440>go <00:41:47.580>and <00:41:47.720>put <00:41:47.860>that <00:41:48.000>message

857
00:41:49.100 --> 00:41:52.100
<00:41:49.100>into <00:41:49.240>that <00:41:49.380>bat <00:41:49.520>into <00:41:49.660>bad <00:41:49.799>mail <00:41:49.940>back <00:41:50.080>if <00:41:50.220>the <00:41:50.360>message <00:41:50.500>has

858
00:41:52.100 --> 00:41:55.500
<00:41:52.100>expired <00:41:52.255>because <00:41:52.411>you <00:41:52.566>can <00:41:52.722>have <00:41:52.877>time <00:41:53.033>to <00:41:53.188>live <00:41:53.344>and <00:41:53.500>you

859
00:41:55.500 --> 00:41:58.600
<00:41:55.500>can <00:41:55.627>go <00:41:55.754>and <00:41:55.881>say <00:41:56.009>I <00:41:56.136>only <00:41:56.263>want <00:41:56.390>to <00:41:56.518>have <00:41:56.645>this <00:41:56.772>process <00:41:56.900>within

860
00:41:58.600 --> 00:42:02.000
<00:41:58.600>the <00:41:58.707>next <00:41:58.815>two <00:41:58.923>minutes. <00:41:59.030>And <00:41:59.138>otherwise, <00:41:59.246>please <00:41:59.353>put <00:41:59.461>it <00:41:59.569>on <00:41:59.676>the <00:41:59.784>side, <00:41:59.892>but <00:42:00.000>then

861
00:42:01.400 --> 00:42:04.300
<00:42:01.400>you <00:42:01.555>can <00:42:01.711>also <00:42:01.866>put <00:42:02.022>that <00:42:02.177>into <00:42:02.333>the <00:42:02.488>dead <00:42:02.644>letter <00:42:02.800>Q

862
00:42:04.300 --> 00:42:07.700
<00:42:04.300>so <00:42:04.427>dead <00:42:04.554>letter <00:42:04.681>Q <00:42:04.809>is <00:42:04.936>a <00:42:05.063>built-in <00:42:05.190>error <00:42:05.318>handling <00:42:05.445>mechanism <00:42:05.572>that <00:42:05.700>is

863
00:42:07.700 --> 00:42:10.400
<00:42:07.700>explicit <00:42:07.933>that <00:42:08.166>allows <00:42:08.399>you <00:42:08.633>to <00:42:08.866>put <00:42:09.100>bad

864
00:42:10.400 --> 00:42:13.200
<00:42:10.400>messages <00:42:10.555>on <00:42:10.711>the <00:42:10.866>side, <00:42:11.022>but <00:42:11.177>it's <00:42:11.333>also <00:42:11.488>just <00:42:11.644>a <00:42:11.800>normal

865
00:42:13.200 --> 00:42:16.300
<00:42:13.200>cues. <00:42:13.307>You <00:42:13.415>can <00:42:13.523>process <00:42:13.630>out <00:42:13.738>of <00:42:13.846>that <00:42:13.953>like <00:42:14.061>a <00:42:14.169>normal <00:42:14.276>queue <00:42:14.384>again. <00:42:14.492>That's <00:42:14.600>also

866
00:42:16.300 --> 00:42:19.700
<00:42:16.300>existing <00:42:16.580>in <00:42:16.860>very <00:42:17.140>many <00:42:17.420>message <00:42:17.700>brokers.

867
00:42:21.300 --> 00:42:25.900
<00:42:21.300>Sessions <00:42:21.427>are <00:42:21.554>the <00:42:21.681>multiplexing <00:42:21.809>feature. <00:42:21.936>I'm <00:42:22.063>going <00:42:22.190>to <00:42:22.318>skip <00:42:22.445>that <00:42:22.572>transactions <00:42:22.700>allow

868
00:42:25.900 --> 00:42:27.500
<00:42:25.900>you <00:42:26.250>to <00:42:26.600>go <00:42:26.950>and <00:42:27.300>send.

869
00:42:29.900 --> 00:42:32.900
<00:42:29.900>Messages <00:42:30.133>after <00:42:30.366>you've <00:42:30.600>done <00:42:30.833>work <00:42:31.066>to <00:42:31.300>two

870
00:42:32.900 --> 00:42:35.300
<00:42:32.900>or <00:42:33.133>three <00:42:33.366>output <00:42:33.600>cues. <00:42:33.833>And <00:42:34.066>in <00:42:34.300>that

871
00:42:35.300 --> 00:42:38.300
<00:42:35.300>in <00:42:35.427>the <00:42:35.554>in <00:42:35.681>this <00:42:35.809>context <00:42:35.936>of <00:42:36.063>that <00:42:36.190>session <00:42:36.318>settle <00:42:36.445>the <00:42:36.572>input <00:42:36.700>queue

872
00:42:38.300 --> 00:42:42.000
<00:42:38.300>if <00:42:38.427>you're <00:42:38.554>going <00:42:38.681>to <00:42:38.809>the <00:42:38.936>cloud <00:42:39.063>you're <00:42:39.190>familiar <00:42:39.318>with <00:42:39.445>things <00:42:39.572>like <00:42:39.700>database

873
00:42:41.500 --> 00:42:44.600
<00:42:41.500>transactions <00:42:41.675>and <00:42:41.850>you <00:42:42.025>wonder <00:42:42.200>where <00:42:42.375>they <00:42:42.550>are. <00:42:42.725>They <00:42:42.900>don't

874
00:42:44.600 --> 00:42:47.500
<00:42:44.600>exist. <00:42:44.727>Sorry, <00:42:44.854>but <00:42:44.981>if <00:42:45.109>you <00:42:45.236>need <00:42:45.363>to <00:42:45.490>have <00:42:45.618>an <00:42:45.745>extra <00:42:45.872>approximation <00:42:46.000>of

875
00:42:47.500 --> 00:42:50.700
<00:42:47.500>that <00:42:47.655>message <00:42:47.811>queues <00:42:47.966>will <00:42:48.122>give <00:42:48.277>you <00:42:48.433>that <00:42:48.588>because <00:42:48.744>message <00:42:48.900>queues

876
00:42:50.700 --> 00:42:53.800
<00:42:50.700>have <00:42:50.875>a <00:42:51.049>mechanism <00:42:51.225>that <00:42:51.399>allows <00:42:51.575>you <00:42:51.750>to <00:42:51.924>go <00:42:52.100>and

877
00:42:53.800 --> 00:42:56.700
<00:42:53.800>do <00:42:54.150>a <00:42:54.500>transactional <00:42:54.850>transfer <00:42:55.200>from

878
00:42:56.700 --> 00:42:58.200
<00:42:56.700>one <00:42:56.970>context <00:42:57.240>to <00:42:57.509>the <00:42:57.779>next <00:42:58.049>context.

879
00:42:59.300 --> 00:43:02.700
<00:42:59.300>and <00:42:59.533>then <00:42:59.766>lastly <00:43:00.000>not <00:43:00.233>only <00:43:00.466>do <00:43:00.700>these

880
00:43:02.700 --> 00:43:03.300
<00:43:02.700>Brokers <00:43:03.240>have

881
00:43:04.900 --> 00:43:07.300
<00:43:04.900>cues, <00:43:05.250>but <00:43:05.600>they <00:43:05.950>typically <00:43:06.300>also

882
00:43:07.300 --> 00:43:10.300
<00:43:07.300>have <00:43:07.427>pubs <00:43:07.554>up <00:43:07.681>meaning <00:43:07.809>you <00:43:07.936>can <00:43:08.063>send <00:43:08.190>them <00:43:08.318>at <00:43:08.445>one <00:43:08.572>message <00:43:08.700>by

883
00:43:10.300 --> 00:43:13.600
<00:43:10.300>producer <00:43:10.475>to <00:43:10.650>a <00:43:10.825>name <00:43:11.000>called <00:43:11.175>the <00:43:11.350>topic <00:43:11.525>and <00:43:11.700>then

884
00:43:13.600 --> 00:43:17.200
<00:43:13.600>you <00:43:13.755>can <00:43:13.911>go <00:43:14.066>and <00:43:14.222>filter <00:43:14.377>them <00:43:14.533>into <00:43:14.688>multiple <00:43:14.844>output <00:43:15.000>cues.

885
00:43:16.200 --> 00:43:19.100
<00:43:16.200>And <00:43:16.480>which <00:43:16.759>means <00:43:17.040>that's <00:43:17.319>how <00:43:17.600>you

886
00:43:19.100 --> 00:43:22.300
<00:43:19.100>can <00:43:19.299>do <00:43:19.500>routing <00:43:19.700>inside <00:43:19.900>of <00:43:20.100>those <00:43:20.299>Brokers. <00:43:20.500>Again,

887
00:43:22.300 --> 00:43:25.000
<00:43:22.300>you're <00:43:22.440>going <00:43:22.580>to <00:43:22.720>have <00:43:22.860>have <00:43:23.000>those <00:43:23.140>slides <00:43:23.280>for <00:43:23.420>reference. <00:43:23.560>You <00:43:23.700>can

888
00:43:25.200 --> 00:43:28.300
<00:43:25.200>read <00:43:25.307>all <00:43:25.415>the <00:43:25.523>text <00:43:25.630>yourself. <00:43:25.738>So <00:43:25.846>I <00:43:25.953>just <00:43:26.061>want <00:43:26.169>to <00:43:26.276>go <00:43:26.384>and <00:43:26.492>make <00:43:26.600>go

889
00:43:28.300 --> 00:43:31.000
<00:43:28.300>through <00:43:28.427>those <00:43:28.554>things <00:43:28.681>fairly <00:43:28.809>quickly <00:43:28.936>because <00:43:29.063>I <00:43:29.190>didn't <00:43:29.318>want <00:43:29.445>to <00:43:29.572>give <00:43:29.700>you

890
00:43:31.100 --> 00:43:34.600
<00:43:31.100>a <00:43:31.255>course <00:43:31.411>that <00:43:31.566>would <00:43:31.722>take <00:43:31.877>a <00:43:32.033>day <00:43:32.188>in <00:43:32.344>all <00:43:32.500>the

891
00:43:34.600 --> 00:43:34.800
features.

892
00:43:36.100 --> 00:43:39.300
<00:43:36.100>So <00:43:36.299>ultimately <00:43:36.500>we <00:43:36.700>have <00:43:36.900>multiple <00:43:37.100>multiple <00:43:37.299>of <00:43:37.500>these

893
00:43:39.300 --> 00:43:42.900
<00:43:39.300>kinds <00:43:39.475>of <00:43:39.650>infrastructures. <00:43:39.825>We <00:43:40.000>talked <00:43:40.175>today <00:43:40.350>about <00:43:40.525>Q <00:43:40.700>pub/brokers

894
00:43:42.900 --> 00:43:45.800
<00:43:42.900>in <00:43:43.180>particular <00:43:43.460>service <00:43:43.740>bus <00:43:44.020>awas <00:43:44.300>sqs

895
00:43:45.800 --> 00:43:48.500
<00:43:45.800>as <00:43:46.080>an <00:43:46.360>SNS <00:43:46.640>Google+ <00:43:46.920>active <00:43:47.200>mq.

896
00:43:48.500 --> 00:43:50.100
<00:43:48.500>Rabbitmq <00:43:49.200>those <00:43:49.900>brokers.

897
00:43:50.900 --> 00:43:53.800
<00:43:50.900>There <00:43:51.100>are <00:43:51.300>brothers <00:43:51.500>and <00:43:51.700>sisters <00:43:51.900>of <00:43:52.100>those <00:43:52.300>which

898
00:43:53.800 --> 00:43:56.400
<00:43:53.800>are <00:43:54.033>Apache <00:43:54.266>Kafka <00:43:54.500>which <00:43:54.733>are <00:43:54.966>event <00:43:55.200>hubs.

899
00:43:56.400 --> 00:43:58.300
<00:43:56.400>Those <00:43:56.750>are <00:43:57.100>event <00:43:57.450>stream <00:43:57.800>brokers.

900
00:43:59.100 --> 00:44:00.300
<00:43:59.100>discrete <00:43:59.640>event <00:44:00.180>routers

901
00:44:00.900 --> 00:44:03.400
<00:44:00.900>Azure <00:44:01.180>event <00:44:01.460>grid <00:44:01.740>AWS <00:44:02.020>eventbridge, <00:44:02.300>which

902
00:44:03.400 --> 00:44:06.600
<00:44:03.400>are <00:44:03.633>pushing <00:44:03.866>out <00:44:04.100>discrete <00:44:04.333>events. <00:44:04.566>Those <00:44:04.800>are

903
00:44:06.600 --> 00:44:06.900
different.

904
00:44:07.700 --> 00:44:10.200
<00:44:07.700>For <00:44:07.980>different <00:44:08.259>purposes <00:44:08.540>and <00:44:08.819>if <00:44:09.100>you

905
00:44:10.200 --> 00:44:13.800
<00:44:10.200>look <00:44:10.480>for <00:44:10.759>me <00:44:11.040>on <00:44:11.319>YouTube, <00:44:11.600>you

906
00:44:13.800 --> 00:44:16.900
<00:44:13.800>will <00:44:13.955>find <00:44:14.111>some <00:44:14.266>talks <00:44:14.422>where <00:44:14.577>I <00:44:14.733>go <00:44:14.888>and <00:44:15.044>explain <00:44:15.200>those.

907
00:44:17.700 --> 00:44:18.000
remember

908
00:44:19.200 --> 00:44:22.500
<00:44:19.200>That's <00:44:19.375>the <00:44:19.549>Kafka <00:44:19.725>thing <00:44:19.899>event <00:44:20.075>streaming <00:44:20.250>is <00:44:20.424>not <00:44:20.600>modern

909
00:44:22.500 --> 00:44:25.400
<00:44:22.500>cues <00:44:22.675>are <00:44:22.850>not <00:44:23.025>traditional. <00:44:23.200>Both <00:44:23.375>are <00:44:23.550>in <00:44:23.725>all <00:44:23.900>systems.

910
00:44:25.400 --> 00:44:29.100
<00:44:25.400>Most <00:44:25.633>modern <00:44:25.866>apps <00:44:26.100>use <00:44:26.333>event <00:44:26.566>streaming <00:44:26.800>RPC

911
00:44:28.100 --> 00:44:31.200
<00:44:28.100>rest <00:44:28.799>nqs <00:44:29.500>together.

912
00:44:31.200 --> 00:44:34.600
<00:44:31.200>And <00:44:31.293>so <00:44:31.386>I <00:44:31.480>hope <00:44:31.573>I <00:44:31.666>was <00:44:31.759>able <00:44:31.853>to <00:44:31.946>give <00:44:32.040>you <00:44:32.133>a <00:44:32.226>bit <00:44:32.319>of <00:44:32.413>an <00:44:32.506>insight <00:44:32.600>into

913
00:44:34.600 --> 00:44:37.400
<00:44:34.600>what <00:44:34.833>queues <00:44:35.066>are <00:44:35.299>and <00:44:35.533>where <00:44:35.766>they're <00:44:36.000>useful

914
00:44:37.400 --> 00:44:39.100
<00:44:37.400>and <00:44:37.600>with <00:44:37.800>that. <00:44:38.000>Thank <00:44:38.200>you <00:44:38.400>for <00:44:38.600>your <00:44:38.800>attention.

915
00:44:47.500 --> 00:44:50.500
<00:44:47.500>Thank <00:44:47.733>you <00:44:47.966>Clemens. <00:44:48.200>We <00:44:48.433>have <00:44:48.666>just <00:44:48.900>maybe

916
00:44:50.500 --> 00:44:53.500
<00:44:50.500>time <00:44:50.700>for <00:44:50.900>one <00:44:51.100>question <00:44:51.300>and <00:44:51.500>if <00:44:51.700>queues <00:44:51.900>are

917
00:44:53.500 --> 00:44:56.400
<00:44:53.500>suited <00:44:53.780>for <00:44:54.060>very <00:44:54.340>large <00:44:54.620>files, <00:44:54.900>for

918
00:44:56.400 --> 00:45:00.100
<00:44:56.400>example, <00:44:56.600>very <00:44:56.800>large <00:44:57.000>Blobs <00:44:57.200>of <00:44:57.400>data <00:44:57.600>cues <00:44:57.800>are

919
00:44:59.100 --> 00:45:03.300
<00:44:59.100>suitable <00:44:59.333>for <00:44:59.566>suited <00:44:59.799>for <00:45:00.033>very <00:45:00.266>large <00:45:00.500>files.

920
00:45:06.100 --> 00:45:09.600
<00:45:06.100>In <00:45:06.240>exceptional <00:45:06.380>cases <00:45:06.520>when <00:45:06.660>someone <00:45:06.799>has <00:45:06.940>already <00:45:07.080>made <00:45:07.220>that <00:45:07.360>decision <00:45:07.500>than

921
00:45:09.600 --> 00:45:09.800
<00:45:09.600>they <00:45:09.780>are.

922
00:45:10.700 --> 00:45:13.600
<00:45:10.700>But <00:45:10.855>I <00:45:11.011>would <00:45:11.166>always <00:45:11.322>avoid <00:45:11.477>it. <00:45:11.633>There's <00:45:11.788>a <00:45:11.944>check. <00:45:12.100>There's

923
00:45:13.600 --> 00:45:16.700
<00:45:13.600>a <00:45:13.755>claim <00:45:13.911>check <00:45:14.066>pattern <00:45:14.222>where <00:45:14.377>you're <00:45:14.533>effectively <00:45:14.688>up <00:45:14.844>straight <00:45:15.000>streaming

924
00:45:16.700 --> 00:45:19.100
<00:45:16.700>a <00:45:16.933>file <00:45:17.166>into <00:45:17.399>storage <00:45:17.633>and <00:45:17.866>then <00:45:18.100>you

925
00:45:19.100 --> 00:45:23.300
<00:45:19.100>passing <00:45:19.275>effectively <00:45:19.450>a <00:45:19.625>link <00:45:19.799>to <00:45:19.975>that <00:45:20.150>into <00:45:20.325>the <00:45:20.500>message

926
00:45:23.300 --> 00:45:26.600
<00:45:23.300>queue. <00:45:23.407>That's <00:45:23.515>the <00:45:23.623>more <00:45:23.730>efficient <00:45:23.838>way <00:45:23.946>of <00:45:24.053>dealing <00:45:24.161>with <00:45:24.269>those <00:45:24.376>things <00:45:24.484>because <00:45:24.592>for <00:45:24.700>a

927
00:45:26.600 --> 00:45:28.100
<00:45:26.600>file <00:45:26.825>you <00:45:27.049>will <00:45:27.275>usually <00:45:27.500>have <00:45:27.725>multiple <00:45:27.950>consumers.

928
00:45:29.200 --> 00:45:32.600
<00:45:29.200>Okay. <00:45:29.433>Thank <00:45:29.666>you <00:45:29.899>Clements. <00:45:30.133>Welcome <00:45:30.366>in <00:45:30.600>a

929
00:45:32.600 --> 00:45:33.200
<00:45:32.600>few <00:45:32.779>minutes <00:45:32.960>we <00:45:33.140>will.