WEBVTT

1
00:00:06.485 --> 00:00:07.455
<00:00:06.485>Good <00:00:06.921>morning <00:00:07.358>everyone.

2
00:00:07.675 --> 00:00:08.695
<00:00:07.675>My <00:00:07.981>name <00:00:08.287>is <00:00:08.593>Ahmed.

3
00:00:09.435 --> 00:00:12.975
<00:00:09.435>Um, <00:00:09.635>I'm <00:00:09.835>currently <00:00:10.035>software <00:00:10.235>development <00:00:10.435>head <00:00:10.635>at <00:00:10.835>soki.

4
00:00:14.115 --> 00:00:16.175
<00:00:14.115>Uh, <00:00:14.465>we'll <00:00:14.815>talk <00:00:15.165>today <00:00:15.515>about

5
00:00:16.905 --> 00:00:19.155
<00:00:16.905>streaming <00:00:17.185>AI <00:00:17.465>responses <00:00:17.745>in <00:00:18.025>real <00:00:18.305>time,

6
00:00:19.655 --> 00:00:23.395
<00:00:19.655>and <00:00:19.830>we <00:00:20.005>will <00:00:20.180>talk <00:00:20.355>about <00:00:20.530>the <00:00:20.705>server <00:00:20.880>center <00:00:21.055>events.

7
00:00:24.165 --> 00:00:26.875
<00:00:24.165>We'll <00:00:24.398>use <00:00:24.631>next <00:00:24.865>GS <00:00:25.098>and <00:00:25.331>SGS, <00:00:25.564>uh,

8
00:00:27.495 --> 00:00:32.235
<00:00:27.495>and <00:00:27.650>we <00:00:27.806>will <00:00:27.961>take <00:00:28.117>this <00:00:28.272>approach <00:00:28.428>from <00:00:28.583>ui <00:00:28.739>ux <00:00:28.895>perspective.

9
00:00:32.405 --> 00:00:35.635
<00:00:32.405>We'll <00:00:32.560>talk <00:00:32.716>about <00:00:32.871>from <00:00:33.027>front <00:00:33.182>end <00:00:33.338>and <00:00:33.493>backend <00:00:33.649>as <00:00:33.805>well,

10
00:00:35.635 --> 00:00:37.395
<00:00:35.635>and <00:00:35.915>we'll <00:00:36.195>talk <00:00:36.474>about <00:00:36.754>some <00:00:37.035>scaling,

11
00:00:38.535 --> 00:00:40.995
<00:00:38.535>uh, <00:00:39.001>about <00:00:39.468>this <00:00:39.934>approach.

12
00:00:43.975 --> 00:00:45.875
<00:00:43.975>Um, <00:00:44.255>a <00:00:44.535>lot <00:00:44.815>of <00:00:45.095>companies <00:00:45.375>currently

13
00:00:45.875 --> 00:00:48.435
<00:00:45.875>or <00:00:46.155>startups <00:00:46.435>are <00:00:46.715>using <00:00:46.995>AI <00:00:47.275>features

14
00:00:48.575 --> 00:00:51.715
<00:00:48.575>or <00:00:48.775>depending <00:00:48.975>on <00:00:49.175>AI <00:00:49.375>provider <00:00:49.575>for <00:00:49.775>launching <00:00:49.975>features,

15
00:00:51.715 --> 00:00:53.355
<00:00:51.715>or <00:00:52.065>even <00:00:52.415>the <00:00:52.765>entire <00:00:53.115>startup

16
00:00:53.415 --> 00:00:56.035
<00:00:53.415>or <00:00:53.615>company <00:00:53.815>could <00:00:54.015>be <00:00:54.214>itself <00:00:54.415>based <00:00:54.615>on <00:00:54.815>ai.

17
00:00:56.895 --> 00:01:00.675
<00:00:56.895>Uh, <00:00:57.095>but <00:00:57.295>we <00:00:57.495>don't <00:00:57.695>need <00:00:57.895>the <00:00:58.095>normal <00:00:58.295>approach

18
00:01:00.705 --> 00:01:01.915
<00:01:00.705>that <00:01:00.977>we <00:01:01.249>send <00:01:01.521>a <00:01:01.794>request.

19
00:01:03.255 --> 00:01:07.875
<00:01:03.255>We <00:01:03.455>wait <00:01:03.655>till, <00:01:03.855>uh, <00:01:04.055>we <00:01:04.254>get <00:01:04.455>a <00:01:04.655>response.

20
00:01:08.295 --> 00:01:11.555
<00:01:08.295>But <00:01:08.422>what <00:01:08.549>we <00:01:08.676>are <00:01:08.804>doing <00:01:08.931>now <00:01:09.058>is <00:01:09.185>streaming <00:01:09.313>it <00:01:09.440>to <00:01:09.567>be <00:01:09.695>like

21
00:01:12.145 --> 00:01:14.355
<00:01:12.145>more <00:01:12.345>interactive <00:01:12.545>or <00:01:12.744>more <00:01:12.945>as <00:01:13.145>a <00:01:13.345>real <00:01:13.545>time.

22
00:01:14.465 --> 00:01:17.955
<00:01:14.465>Something <00:01:14.815>like, <00:01:15.165>uh, <00:01:15.515>share <00:01:15.865>GBT

23
00:01:18.055 --> 00:01:19.475
<00:01:18.055>or <00:01:18.694>Notion <00:01:19.333>AI

24
00:01:19.895 --> 00:01:23.635
<00:01:19.895>or <00:01:20.128>uh, <00:01:20.361>GitHub <00:01:20.595>copilot <00:01:20.828>when <00:01:21.061>you <00:01:21.295>see

25
00:01:24.185 --> 00:01:26.115
<00:01:24.185>real <00:01:24.535>time <00:01:24.885>interactive <00:01:25.235>with <00:01:25.585>text

26
00:01:26.215 --> 00:01:28.115
<00:01:26.215>and <00:01:26.415>response <00:01:26.615>in <00:01:26.815>the, <00:01:27.015>in <00:01:27.215>the <00:01:27.415>real <00:01:27.615>time.

27
00:01:30.425 --> 00:01:32.805
<00:01:30.425>Uh, <00:01:30.625>my <00:01:30.825>previous <00:01:31.024>experience <00:01:31.225>and <00:01:31.425>my <00:01:31.625>current <00:01:31.825>company

28
00:01:32.805 --> 00:01:36.525
<00:01:32.805>and <00:01:33.005>previous <00:01:33.205>companies <00:01:33.405>that <00:01:33.605>we <00:01:33.805>have, <00:01:34.005>uh, <00:01:34.205>dealing

29
00:01:36.635 --> 00:01:38.765
<00:01:36.634>with <00:01:37.101>different <00:01:37.568>AI <00:01:38.035>providers

30
00:01:39.635 --> 00:01:44.055
<00:01:39.634>and <00:01:39.914>we <00:01:40.195>also <00:01:40.475>using <00:01:40.755>desktop <00:01:41.035>browser

31
00:01:44.055 --> 00:01:45.335
<00:01:44.055>extension <00:01:44.439>and <00:01:44.823>front <00:01:45.207>end,

32
00:01:45.435 --> 00:01:48.615
<00:01:45.435>and <00:01:45.590>we <00:01:45.746>would <00:01:45.901>like <00:01:46.057>to <00:01:46.212>communicate <00:01:46.368>between <00:01:46.523>all <00:01:46.679>of <00:01:46.835>them

33
00:01:48.755 --> 00:01:50.575
<00:01:48.755>and <00:01:49.035>have <00:01:49.315>seamless <00:01:49.595>communication <00:01:49.875>between <00:01:50.155>them.

34
00:01:50.835 --> 00:01:54.535
<00:01:50.835>And <00:01:50.962>if <00:01:51.089>you <00:01:51.216>would <00:01:51.344>like <00:01:51.471>to <00:01:51.598>send <00:01:51.725>a <00:01:51.853>message <00:01:51.980>or <00:01:52.107>send <00:01:52.235>data

35
00:01:54.995 --> 00:01:57.495
<00:01:54.995>or <00:01:55.170>from <00:01:55.345>streaming, <00:01:55.520>AI <00:01:55.695>would <00:01:55.870>like <00:01:56.045>to <00:01:56.220>make <00:01:56.395>sure

36
00:01:58.335 --> 00:02:02.695
<00:01:58.335>whatever <00:01:58.490>we <00:01:58.646>send <00:01:58.801>from <00:01:58.957>the <00:01:59.112>backend <00:01:59.268>arrive <00:01:59.423>a <00:01:59.579>mobile <00:01:59.735>desktop

37
00:02:02.875 --> 00:02:04.095
<00:02:02.875>or <00:02:03.424>browser <00:02:03.973>extension.

38
00:02:09.645 --> 00:02:11.455
<00:02:09.645>This <00:02:09.995>is <00:02:10.345>a <00:02:10.695>default <00:02:11.045>approach.

39
00:02:11.835 --> 00:02:14.015
<00:02:11.835>If <00:02:12.115>we <00:02:12.395>will <00:02:12.675>use <00:02:12.955>loading <00:02:13.235>screen

40
00:02:14.755 --> 00:02:17.735
<00:02:14.755>or <00:02:15.035>we'll <00:02:15.315>use <00:02:15.595>it, <00:02:15.875>uh, <00:02:16.155>typewriter.

41
00:02:18.405 --> 00:02:22.215
<00:02:18.405>This <00:02:18.560>is <00:02:18.716>how <00:02:18.871>should <00:02:19.027>be <00:02:19.182>a <00:02:19.338>Should <00:02:19.493>be <00:02:19.649>moving <00:02:19.805>here.

42
00:02:23.245 --> 00:02:26.855
<00:02:23.245>Yeah. <00:02:24.645>Okay.

43
00:02:30.155 --> 00:02:33.535
<00:02:30.155>So <00:02:30.330>either <00:02:30.505>we, <00:02:30.680>we <00:02:30.855>use <00:02:31.030>the <00:02:31.205>loading <00:02:31.380>screen <00:02:31.555>till

44
00:02:33.555 --> 00:02:34.695
<00:02:33.555>the <00:02:33.897>requests <00:02:34.239>are <00:02:34.581>received.

45
00:02:34.845 --> 00:02:38.535
<00:02:34.845>This <00:02:35.000>could <00:02:35.156>be <00:02:35.311>take <00:02:35.467>like <00:02:35.622>second <00:02:35.778>two, <00:02:35.933>three, <00:02:36.089>or <00:02:36.245>four,

46
00:02:38.995 --> 00:02:40.415
<00:02:38.995>or <00:02:39.314>we <00:02:39.634>could <00:02:39.953>be, <00:02:40.273>uh,

47
00:02:42.235 --> 00:02:44.815
<00:02:42.235>see <00:02:42.468>the <00:02:42.701>response <00:02:42.935>gets <00:02:43.168>written <00:02:43.401>in <00:02:43.635>front

48
00:02:44.815 --> 00:02:46.095
<00:02:44.815>of <00:02:45.007>us, <00:02:45.199>like <00:02:45.391>in <00:02:45.583>a <00:02:45.775>real <00:02:45.966>time.

49
00:02:47.795 --> 00:02:50.415
<00:02:47.795>So <00:02:47.970>by <00:02:48.145>default, <00:02:48.320>the <00:02:48.495>time <00:02:48.670>till <00:02:48.845>the <00:02:49.020>first <00:02:49.195>talking,

50
00:02:50.955 --> 00:02:52.695
<00:02:50.954>if <00:02:51.188>we <00:02:51.421>are <00:02:51.654>sending <00:02:51.888>a <00:02:52.121>risk <00:02:52.355>request,

51
00:02:52.865 --> 00:02:54.855
<00:02:52.865>could <00:02:53.145>take <00:02:53.425>one <00:02:53.705>or <00:02:53.985>three <00:02:54.265>seconds.

52
00:02:55.675 --> 00:02:58.535
<00:02:55.675>But <00:02:55.955>if <00:02:56.235>we, <00:02:56.515>uh, <00:02:56.795>streaming <00:02:57.075>it,

53
00:02:59.185 --> 00:03:02.325
<00:02:59.185>we <00:02:59.325>will <00:02:59.465>get <00:02:59.605>response <00:02:59.745>like <00:02:59.885>line <00:03:00.025>by <00:03:00.165>line, <00:03:00.305>text <00:03:00.445>by <00:03:00.585>text.

54
00:03:02.665 --> 00:03:05.325
<00:03:02.665>And <00:03:02.864>instead <00:03:03.065>of <00:03:03.265>waiting <00:03:03.465>till <00:03:03.665>the <00:03:03.864>four <00:03:04.065>response,

55
00:03:07.105 --> 00:03:11.125
<00:03:07.105>and <00:03:07.280>from <00:03:07.454>a <00:03:07.630>UX <00:03:07.804>perspective, <00:03:07.980>according <00:03:08.155>to <00:03:08.329>Google, <00:03:08.505>uh,

56
00:03:11.705 --> 00:03:14.685
<00:03:11.705>at <00:03:11.880>Google <00:03:12.055>Summit <00:03:12.230>at <00:03:12.405>2020, <00:03:12.580>the <00:03:12.755>US <00:03:12.930>saying <00:03:13.105>that

57
00:03:16.275 --> 00:03:20.655
<00:03:16.275>if <00:03:16.415>the <00:03:16.555>user <00:03:16.695>is <00:03:16.835>getting, <00:03:16.975>um, <00:03:17.115>see <00:03:17.255>the <00:03:17.395>result <00:03:17.535>in <00:03:17.675>front

58
00:03:20.655 --> 00:03:24.175
<00:03:20.655>of <00:03:20.888>them <00:03:21.121>at <00:03:21.355>the <00:03:21.588>first <00:03:21.821>120 <00:03:22.055>milliseconds,

59
00:03:25.085 --> 00:03:28.535
<00:03:25.085>this <00:03:25.285>could <00:03:25.485>increase <00:03:25.685>the <00:03:25.885>user <00:03:26.085>retention <00:03:26.285>by <00:03:26.485>30%.

60
00:03:29.245 --> 00:03:32.495
<00:03:29.245>Otherwise, <00:03:29.445>if <00:03:29.645>he's <00:03:29.845>waiting <00:03:30.045>for <00:03:30.245>four, <00:03:30.445>three <00:03:30.645>seconds,

61
00:03:32.715 --> 00:03:34.255
<00:03:32.715>he <00:03:33.061>waiting <00:03:33.408>for <00:03:33.754>the <00:03:34.101>response.

62
00:03:35.115 --> 00:03:38.455
<00:03:35.115>Uh, <00:03:35.348>so <00:03:35.581>presenting, <00:03:35.815>he <00:03:36.048>will <00:03:36.281>be <00:03:36.515>bored

63
00:03:38.555 --> 00:03:41.015
<00:03:38.555>or <00:03:38.835>maybe <00:03:39.115>close <00:03:39.395>the <00:03:39.675>app, <00:03:39.955>uh,

64
00:03:41.475 --> 00:03:45.135
<00:03:41.475>or <00:03:41.630>maybe <00:03:41.786>he <00:03:41.941>doesn't <00:03:42.097>feel <00:03:42.252>that <00:03:42.408>the <00:03:42.563>application <00:03:42.719>is <00:03:42.875>interactive

65
00:03:45.395 --> 00:03:47.175
<00:03:45.395>or <00:03:45.628>at <00:03:45.861>his <00:03:46.095>time <00:03:46.328>talking <00:03:46.561>with <00:03:46.795>him.

66
00:03:49.355 --> 00:03:52.895
<00:03:49.355>And <00:03:49.530>also <00:03:49.704>there <00:03:49.880>another <00:03:50.054>psychological <00:03:50.230>effect <00:03:50.405>that <00:03:50.579>was <00:03:50.755>saying,

67
00:03:53.355 --> 00:03:57.055
<00:03:53.355>uh, <00:03:53.554>from <00:03:53.755>UX <00:03:53.954>perspective, <00:03:54.155>as <00:03:54.355>a <00:03:54.554>user, <00:03:54.755>uh,

68
00:03:57.325 --> 00:03:59.695
<00:03:57.325>sees <00:03:57.500>the <00:03:57.674>process <00:03:57.850>keep <00:03:58.024>happening <00:03:58.200>in <00:03:58.375>front <00:03:58.549>of <00:03:58.725>him,

69
00:04:00.235 --> 00:04:01.935
<00:04:00.235>he <00:04:00.701>will <00:04:01.168>keep <00:04:01.635>engaged

70
00:04:02.035 --> 00:04:05.015
<00:04:02.035>and <00:04:02.234>feel <00:04:02.435>like <00:04:02.635>he's <00:04:02.835>in <00:04:03.035>an <00:04:03.234>interactive <00:04:03.435>application.

71
00:04:14.955 --> 00:04:17.335
<00:04:14.955>And <00:04:15.130>now <00:04:15.305>we <00:04:15.480>will <00:04:15.655>see <00:04:15.830>we <00:04:16.005>have <00:04:16.180>different <00:04:16.355>protocols.

72
00:04:17.565 --> 00:04:21.175
<00:04:17.565>This <00:04:17.704>is <00:04:17.844>the <00:04:17.985>most <00:04:18.125>common <00:04:18.265>protocols <00:04:18.404>if <00:04:18.545>we <00:04:18.685>will <00:04:18.825>see, <00:04:18.964>uh,

73
00:04:21.275 --> 00:04:24.335
<00:04:21.274>we <00:04:21.508>could <00:04:21.741>use <00:04:21.974>rest, <00:04:22.208>uh, <00:04:22.441>web <00:04:22.674>socket

74
00:04:24.835 --> 00:04:29.335
<00:04:24.835>or <00:04:24.990>server <00:04:25.146>center <00:04:25.301>events, <00:04:25.457>which <00:04:25.612>is <00:04:25.768>not <00:04:25.923>very <00:04:26.079>popular, <00:04:26.234>uh,

75
00:04:30.195 --> 00:04:32.375
<00:04:30.195>but <00:04:30.395>it's <00:04:30.594>almost <00:04:30.795>the <00:04:30.995>same <00:04:31.195>as <00:04:31.395>web <00:04:31.594>sockets.

76
00:04:32.515 --> 00:04:36.695
<00:04:32.515>But <00:04:32.715>the <00:04:32.914>difference <00:04:33.115>between <00:04:33.315>it, <00:04:33.515>it <00:04:33.715>says <00:04:33.914>bidirectional.

77
00:04:36.955 --> 00:04:40.215
<00:04:36.955>So <00:04:37.130>web <00:04:37.305>soki <00:04:37.479>is <00:04:37.655>good <00:04:37.830>as <00:04:38.005>bidirectional <00:04:38.180>communication <00:04:38.354>if

78
00:04:40.215 --> 00:04:42.695
<00:04:40.215>between <00:04:40.370>the <00:04:40.526>server <00:04:40.681>and <00:04:40.837>the <00:04:40.992>client, <00:04:41.148>if <00:04:41.303>you <00:04:41.459>would <00:04:41.615>like

79
00:04:42.795 --> 00:04:44.535
<00:04:42.795>to <00:04:43.145>send <00:04:43.495>or <00:04:43.845>receive <00:04:44.195>data.

80
00:04:44.915 --> 00:04:46.855
<00:04:44.915>But <00:04:45.115>if <00:04:45.315>you <00:04:45.515>are <00:04:45.715>using <00:04:45.915>server <00:04:46.115>send <00:04:46.315>events,

81
00:04:46.915 --> 00:04:50.695
<00:04:46.915>you <00:04:47.055>will <00:04:47.195>just <00:04:47.335>pushing <00:04:47.475>data <00:04:47.615>from <00:04:47.755>the <00:04:47.895>server <00:04:48.035>to <00:04:48.175>the <00:04:48.315>client,

82
00:04:50.695 --> 00:04:53.455
<00:04:50.695>which <00:04:50.928>mean <00:04:51.161>less <00:04:51.395>resources <00:04:51.628>and <00:04:51.861>less <00:04:52.094>memory.

83
00:04:54.195 --> 00:04:58.055
<00:04:54.195>And, <00:04:54.474>uh, <00:04:54.755>We <00:04:55.034>could <00:04:55.315>see <00:04:55.594>here

84
00:04:58.925 --> 00:05:02.495
<00:04:58.925>from, <00:04:59.080>for, <00:04:59.236>for <00:04:59.391>the <00:04:59.547>rest, <00:04:59.702>you <00:04:59.858>have <00:05:00.013>to, <00:05:00.169>to <00:05:00.325>wait

85
00:05:02.915 --> 00:05:04.215
<00:05:02.915>for <00:05:03.305>the, <00:05:03.695>for <00:05:04.085>response.

86
00:05:04.915 --> 00:05:06.575
<00:05:04.915>So <00:05:05.381>to <00:05:05.848>be <00:05:06.315>generated.

87
00:05:07.805 --> 00:05:09.815
<00:05:07.805>This <00:05:08.155>doesn't <00:05:08.505>like <00:05:08.855>take <00:05:09.205>estimated

88
00:05:09.875 --> 00:05:11.695
<00:05:09.875>by <00:05:10.155>one <00:05:10.435>kilo <00:05:10.715>kilowatt <00:05:10.995>by <00:05:11.275>memory.

89
00:05:12.085 --> 00:05:14.695
<00:05:12.085>It's <00:05:12.318>work <00:05:12.551>fine. <00:05:12.784>And <00:05:13.018>it's <00:05:13.251>one <00:05:13.484>direction

90
00:05:15.755 --> 00:05:18.815
<00:05:15.755>if <00:05:16.034>we <00:05:16.315>will <00:05:16.594>keep, <00:05:16.875>uh, <00:05:17.155>triggering

91
00:05:19.075 --> 00:05:22.335
<00:05:19.075>and <00:05:19.215>asking <00:05:19.354>the <00:05:19.495>server <00:05:19.635>if <00:05:19.775>the <00:05:19.914>response <00:05:20.055>is <00:05:20.195>ready <00:05:20.335>or <00:05:20.474>not.

92
00:05:22.605 --> 00:05:24.015
<00:05:22.605>This <00:05:22.816>will <00:05:23.028>consume <00:05:23.239>a <00:05:23.451>lot <00:05:23.662>of <00:05:23.873>memory.

93
00:05:24.835 --> 00:05:28.975
<00:05:24.835>Um, <00:05:24.990>and <00:05:25.146>also <00:05:25.301>whether <00:05:25.457>we <00:05:25.612>will <00:05:25.768>take <00:05:25.923>from <00:05:26.079>the <00:05:26.234>battery,

94
00:05:30.255 --> 00:05:32.675
<00:05:30.255>if <00:05:30.430>we <00:05:30.605>use <00:05:30.780>web <00:05:30.955>socket, <00:05:31.130>we <00:05:31.305>could <00:05:31.480>see <00:05:31.655>the,

95
00:05:32.725 --> 00:05:35.915
<00:05:32.725>there <00:05:32.865>is <00:05:33.005>a <00:05:33.145>big <00:05:33.285>difference <00:05:33.425>between <00:05:33.565>time <00:05:33.705>to <00:05:33.845>the <00:05:33.985>first <00:05:34.125>token,

96
00:05:36.125 --> 00:05:37.675
<00:05:36.125>maybe <00:05:36.590>from <00:05:37.055>three <00:05:37.520>second

97
00:05:38.135 --> 00:05:41.915
<00:05:38.135>to <00:05:38.601>just <00:05:39.068>350 <00:05:39.534>milliseconds.

98
00:05:42.855 --> 00:05:47.795
<00:05:42.855>And <00:05:42.982>if <00:05:43.109>we <00:05:43.236>are <00:05:43.364>using <00:05:43.491>server <00:05:43.618>set <00:05:43.745>event, <00:05:43.873>which <00:05:44.000>will <00:05:44.127>reduce, <00:05:44.255>uh,

99
00:05:48.255 --> 00:05:52.075
<00:05:48.255>almost <00:05:48.488>to <00:05:48.721>by <00:05:48.955>the <00:05:49.188>half <00:05:49.421>to <00:05:49.655>100

100
00:05:52.375 --> 00:05:55.475
<00:05:52.375>and, <00:05:52.608>uh, <00:05:52.841>20 <00:05:53.075>millisecond, <00:05:53.308>this <00:05:53.541>is, <00:05:53.775>uh,

101
00:05:55.475 --> 00:05:56.675
<00:05:55.475>like <00:05:55.835>the <00:05:56.195>bare <00:05:56.555>approach.

102
00:05:56.855 --> 00:05:59.525
<00:05:56.855>And <00:05:57.030>as <00:05:57.205>you <00:05:57.380>see <00:05:57.555>from <00:05:57.730>the <00:05:57.905>memory <00:05:58.080>bear <00:05:58.255>connection,

103
00:06:00.065 --> 00:06:03.045
<00:06:00.065>we <00:06:00.205>almost <00:06:00.344>taken <00:06:00.485>the <00:06:00.625>half <00:06:00.765>from <00:06:00.905>four <00:06:01.045>to <00:06:01.185>six, <00:06:01.325>it's <00:06:01.465>two,

104
00:06:03.655 --> 00:06:06.365
<00:06:03.655>which <00:06:03.934>makes <00:06:04.215>sense <00:06:04.494>because <00:06:04.775>this <00:06:05.054>two

105
00:06:06.385 --> 00:06:09.125
<00:06:06.385>by <00:06:06.851>direction <00:06:07.318>directional <00:06:07.784>request.

106
00:06:09.745 --> 00:06:11.365
<00:06:09.745>And <00:06:10.095>this <00:06:10.445>is <00:06:10.795>just, <00:06:11.145>oh,

107
00:06:11.365 --> 00:06:13.765
<00:06:11.365>an <00:06:11.565>open <00:06:11.765>connection <00:06:11.965>from <00:06:12.165>the, <00:06:12.365>from <00:06:12.565>the <00:06:12.765>server.

108
00:06:28.485 --> 00:06:31.505
<00:06:28.485>We <00:06:28.640>will <00:06:28.796>talk <00:06:28.951>like <00:06:29.107>about <00:06:29.262>the <00:06:29.418>full <00:06:29.573>stack <00:06:29.729>approach <00:06:29.885>about

109
00:06:32.335 --> 00:06:35.345
<00:06:32.335>what <00:06:32.510>we <00:06:32.685>will <00:06:32.859>do, <00:06:33.034>which <00:06:33.210>is, <00:06:33.385>uh, <00:06:33.560>we'll <00:06:33.734>see

110
00:06:35.525 --> 00:06:40.025
<00:06:35.525>how <00:06:35.664>the <00:06:35.804>flow <00:06:35.945>is <00:06:36.085>working <00:06:36.224>from <00:06:36.364>front <00:06:36.505>end <00:06:36.645>to <00:06:36.784>backend, <00:06:36.924>uh,

111
00:06:40.045 --> 00:06:41.905
<00:06:40.045>to <00:06:40.395>AI <00:06:40.745>model <00:06:41.095>for <00:06:41.445>streaming.

112
00:06:42.985 --> 00:06:44.145
<00:06:42.985>Starting <00:06:43.333>from <00:06:43.681>front <00:06:44.029>end.

113
00:06:44.645 --> 00:06:49.425
<00:06:44.645>The <00:06:44.772>next <00:06:44.899>GS <00:06:45.026>will <00:06:45.154>use, <00:06:45.281>uh, <00:06:45.408>even <00:06:45.535>source, <00:06:45.663>which <00:06:45.790>is <00:06:45.917>a <00:06:46.044>web,

114
00:06:49.505 --> 00:06:52.665
<00:06:49.505>A <00:06:49.680>BI, <00:06:49.855>which <00:06:50.030>is <00:06:50.205>also <00:06:50.380>provide, <00:06:50.555>provide <00:06:50.730>in, <00:06:50.905>uh,

115
00:06:53.215 --> 00:06:54.745
<00:06:53.215>supported <00:06:53.559>in <00:06:53.903>all <00:06:54.247>the <00:06:54.592>browsers,

116
00:06:54.745 --> 00:06:56.825
<00:06:54.745>even <00:06:55.095>starting <00:06:55.445>from <00:06:55.795>Internet <00:06:56.145>Explorer.

117
00:06:57.525 --> 00:07:01.265
<00:06:57.525>So <00:06:57.680>you <00:06:57.836>could <00:06:57.991>run <00:06:58.147>it <00:06:58.302>even <00:06:58.458>in <00:06:58.613>the <00:06:58.769>Chrome <00:06:58.924>console.

118
00:07:01.365 --> 00:07:05.785
<00:07:01.365>It <00:07:01.505>would <00:07:01.645>be <00:07:01.785>working <00:07:01.925>fine <00:07:02.065>And <00:07:02.205>it's <00:07:02.345>defined <00:07:02.485>in <00:07:02.625>a <00:07:02.765>different

119
00:07:05.805 --> 00:07:08.505
<00:07:05.805>way, <00:07:06.085>uh, <00:07:06.365>in <00:07:06.645>mobile <00:07:06.925>or <00:07:07.205>desktop

120
00:07:08.505 --> 00:07:10.065
<00:07:08.505>or <00:07:08.784>whatever <00:07:09.065>the <00:07:09.344>framework <00:07:09.625>you <00:07:09.905>using.

121
00:07:10.085 --> 00:07:12.225
<00:07:10.085>But <00:07:10.260>you <00:07:10.435>will <00:07:10.609>see <00:07:10.784>even <00:07:10.960>source <00:07:11.135>in <00:07:11.310>different <00:07:11.484>way.

122
00:07:13.685 --> 00:07:14.985
<00:07:13.685>And <00:07:13.977>for, <00:07:14.270>for <00:07:14.562>the <00:07:14.855>backend,

123
00:07:15.365 --> 00:07:18.385
<00:07:15.365>we <00:07:15.540>will <00:07:15.715>use <00:07:15.890>the <00:07:16.065>built <00:07:16.240>in <00:07:16.415>server <00:07:16.590>center <00:07:16.765>events.

124
00:07:18.485 --> 00:07:21.865
<00:07:18.485>In <00:07:18.718>SGS, <00:07:18.951>um, <00:07:19.185>this <00:07:19.418>is <00:07:19.651>a <00:07:19.885>function

125
00:07:22.895 --> 00:07:24.665
<00:07:22.895>that <00:07:23.174>will <00:07:23.455>open <00:07:23.734>real <00:07:24.015>time <00:07:24.294>data.

126
00:07:27.145 --> 00:07:30.425
<00:07:27.145>Whatever <00:07:27.344>you, <00:07:27.544>whatever <00:07:27.745>the <00:07:27.945>backend <00:07:28.145>language <00:07:28.344>you're <00:07:28.544>using

127
00:07:30.635 --> 00:07:34.945
<00:07:30.635>other <00:07:30.790>Python <00:07:30.946>go <00:07:31.101>rust, <00:07:31.257>you <00:07:31.412>will <00:07:31.568>see <00:07:31.723>the <00:07:31.879>same <00:07:32.034>function,

128
00:07:34.965 --> 00:07:36.305
<00:07:34.965>but <00:07:35.367>with <00:07:35.769>different <00:07:36.171>implementation

129
00:07:36.325 --> 00:07:41.265
<00:07:36.325>or <00:07:36.465>a <00:07:36.604>package <00:07:36.745>that <00:07:36.885>supported <00:07:37.025>to, <00:07:37.164>uh, <00:07:37.305>to <00:07:37.445>server <00:07:37.585>center <00:07:37.724>events.

130
00:07:41.445 --> 00:07:45.225
<00:07:41.445>So <00:07:41.645>it <00:07:41.844>doesn't <00:07:42.045>need <00:07:42.245>to <00:07:42.445>use <00:07:42.645>NS <00:07:42.844>specifically.

131
00:07:45.225 --> 00:07:47.345
<00:07:45.225>You <00:07:45.400>could <00:07:45.575>use <00:07:45.750>whatever <00:07:45.925>language <00:07:46.100>or <00:07:46.275>framework <00:07:46.450>you're <00:07:46.625>using.

132
00:07:48.405 --> 00:07:52.785
<00:07:48.405>Uh, <00:07:48.638>and <00:07:48.871>when <00:07:49.104>the <00:07:49.338>front <00:07:49.571>end <00:07:49.804>subscribe

133
00:07:52.845 --> 00:07:57.465
<00:07:52.845>to <00:07:53.000>the <00:07:53.156>backend, <00:07:53.311>the <00:07:53.467>backend <00:07:53.622>will <00:07:53.778>will <00:07:53.933>use <00:07:54.089>the <00:07:54.245>event

134
00:07:57.685 --> 00:08:02.265
<00:07:57.685>and <00:07:57.825>also <00:07:57.965>provide <00:07:58.105>web <00:07:58.245>token <00:07:58.385>a <00:07:58.525>indications <00:07:58.665>that <00:07:58.805>in, <00:07:58.945>in <00:07:59.085>cookies

135
00:08:04.325 --> 00:08:07.625
<00:08:04.325>we <00:08:04.480>also <00:08:04.636>will <00:08:04.791>use <00:08:04.947>like <00:08:05.102>rate <00:08:05.258>limiting <00:08:05.413>in <00:08:05.569>the <00:08:05.724>request.

136
00:08:08.845 --> 00:08:10.425
<00:08:08.845>And <00:08:09.125>if, <00:08:09.405>if <00:08:09.685>everything <00:08:09.965>is <00:08:10.245>fine

137
00:08:10.585 --> 00:08:13.905
<00:08:10.585>and <00:08:10.724>we <00:08:10.864>define <00:08:11.005>the <00:08:11.145>user, <00:08:11.284>we <00:08:11.424>will, <00:08:11.565>uh, <00:08:11.705>open <00:08:11.844>like <00:08:11.984>streaming

138
00:08:14.175 --> 00:08:18.555
<00:08:14.175>with, <00:08:14.350>uh, <00:08:14.525>with <00:08:14.700>open <00:08:14.875>AI <00:08:15.050>Or <00:08:15.225>whatever <00:08:15.400>AI <00:08:15.575>model.

139
00:08:19.075 --> 00:08:22.035
<00:08:19.075>I <00:08:19.308>will <00:08:19.541>talk <00:08:19.775>now <00:08:20.008>about <00:08:20.241>open <00:08:20.474>AI

140
00:08:22.035 --> 00:08:23.795
<00:08:22.035>and <00:08:22.268>Gemini, <00:08:22.501>which <00:08:22.735>is <00:08:22.968>more, <00:08:23.201>more <00:08:23.435>popular,

141
00:08:24.655 --> 00:08:26.795
<00:08:24.655>but <00:08:24.830>most <00:08:25.005>of <00:08:25.179>the <00:08:25.354>provider <00:08:25.530>have <00:08:25.705>the <00:08:25.880>same <00:08:26.054>way.

142
00:08:27.095 --> 00:08:31.915
<00:08:27.095>Either <00:08:27.235>the, <00:08:27.375>they <00:08:27.515>give <00:08:27.655>you <00:08:27.795>the <00:08:27.935>response <00:08:28.075>token <00:08:28.215>by <00:08:28.355>token, <00:08:28.495>like,

143
00:08:32.575 --> 00:08:34.755
<00:08:32.575>uh, <00:08:32.808>or <00:08:33.041>Gemini <00:08:33.275>is <00:08:33.508>the <00:08:33.741>only <00:08:33.975>exception,

144
00:08:34.755 --> 00:08:36.155
<00:08:34.755>which <00:08:35.006>give <00:08:35.259>you <00:08:35.510>chunk <00:08:35.763>by <00:08:36.015>chunk.

145
00:08:36.655 --> 00:08:37.915
<00:08:36.655>And <00:08:37.033>the <00:08:37.410>difference <00:08:37.789>between,

146
00:08:38.025 --> 00:08:40.355
<00:08:38.025>it's <00:08:38.225>like <00:08:38.424>opening <00:08:38.625>eye <00:08:38.824>will <00:08:39.025>give <00:08:39.225>you, <00:08:39.424>uh,

147
00:08:40.705 --> 00:08:44.555
<00:08:40.705>text <00:08:40.860>the <00:08:41.016>first <00:08:41.171>word, <00:08:41.327>second <00:08:41.482>word, <00:08:41.638>or <00:08:41.793>uh, <00:08:41.949>stream <00:08:42.105>letters.

148
00:08:45.135 --> 00:08:47.435
<00:08:45.135>But <00:08:45.415>Gemini <00:08:45.694>will <00:08:45.975>give <00:08:46.255>you <00:08:46.535>paragraph

149
00:08:47.535 --> 00:08:49.275
<00:08:47.535>and <00:08:48.001>paragraph <00:08:48.468>or <00:08:48.935>sentence.

150
00:08:50.055 --> 00:08:53.835
<00:08:50.055>You <00:08:50.255>could <00:08:50.454>still <00:08:50.655>simulate <00:08:50.854>the <00:08:51.055>writing <00:08:51.255>effect <00:08:51.454>by

151
00:08:54.615 --> 00:08:55.925
<00:08:54.615>by <00:08:54.811>tweak <00:08:55.008>it <00:08:55.204>from <00:08:55.401>the <00:08:55.597>front <00:08:55.794>end.

152
00:08:56.355 --> 00:08:57.605
<00:08:56.355>When <00:08:56.636>you <00:08:56.917>have <00:08:57.198>a <00:08:57.480>paragraph,

153
00:08:57.705 --> 00:09:00.125
<00:08:57.705>you <00:08:57.880>don't <00:08:58.055>put <00:08:58.230>it <00:08:58.405>exactly <00:08:58.580>in <00:08:58.755>the <00:08:58.930>front <00:08:59.105>end,

154
00:09:00.185 --> 00:09:04.485
<00:09:00.185>but <00:09:00.340>just <00:09:00.496>go <00:09:00.651>through <00:09:00.807>it <00:09:00.962>and, <00:09:01.118>uh, <00:09:01.273>take <00:09:01.429>split <00:09:01.584>it

155
00:09:04.545 --> 00:09:06.445
<00:09:04.545>and, <00:09:04.778>uh, <00:09:05.011>display <00:09:05.245>it <00:09:05.478>part <00:09:05.711>by <00:09:05.944>part.

156
00:09:20.415 --> 00:09:23.955
<00:09:20.415>So, <00:09:20.555>uh, <00:09:20.694>next <00:09:20.834>g <00:09:20.974>as <00:09:21.115>I <00:09:21.255>said, <00:09:21.395>we'll <00:09:21.535>use <00:09:21.675>the <00:09:21.814>function

157
00:09:24.055 --> 00:09:26.795
<00:09:24.055>to <00:09:24.255>stream <00:09:24.454>tokens <00:09:24.655>from <00:09:24.854>open <00:09:25.055>AI <00:09:25.255>or <00:09:25.454>Gini.

158
00:09:27.735 --> 00:09:31.635
<00:09:27.735>Uh, <00:09:27.890>the <00:09:28.046>front <00:09:28.201>end <00:09:28.357>will <00:09:28.512>connect <00:09:28.668>using <00:09:28.823>event <00:09:28.979>source <00:09:29.135>function.

159
00:09:33.175 --> 00:09:35.275
<00:09:33.175>We, <00:09:33.454>uh, <00:09:33.734>we <00:09:34.015>will <00:09:34.295>render, <00:09:34.574>uh,

160
00:09:35.895 --> 00:09:38.715
<00:09:35.895>the <00:09:36.069>response <00:09:36.245>in <00:09:36.420>a <00:09:36.595>live <00:09:36.770>way <00:09:36.944>using <00:09:37.120>typewriter <00:09:37.295>style.

161
00:09:39.175 --> 00:09:44.115
<00:09:39.175>We <00:09:39.375>see <00:09:39.574>this <00:09:39.775>function, <00:09:39.974>uh, <00:09:40.175>the <00:09:40.375>backend, <00:09:40.574>oh,

162
00:09:44.175 --> 00:09:46.555
<00:09:44.175>uh, <00:09:44.454>stream <00:09:44.734>with <00:09:45.015>server <00:09:45.295>side <00:09:45.574>endpoint.

163
00:09:47.425 --> 00:09:49.755
<00:09:47.425>Also <00:09:47.891>there <00:09:48.358>is <00:09:48.824>retry

164
00:09:49.815 --> 00:09:52.675
<00:09:49.815>or, <00:09:50.095>uh, <00:09:50.375>the <00:09:50.655>connection <00:09:50.935>is <00:09:51.215>spelled

165
00:09:52.855 --> 00:09:56.555
<00:09:52.855>or, <00:09:53.055>uh, <00:09:53.255>the <00:09:53.455>connection <00:09:53.655>disconnected <00:09:53.855>in <00:09:54.055>the <00:09:54.255>middle.

166
00:09:57.415 --> 00:09:58.995
<00:09:57.415>And <00:09:57.765>you <00:09:58.115>could <00:09:58.464>also <00:09:58.814>know

167
00:09:59.455 --> 00:10:02.875
<00:09:59.455>and <00:09:59.688>continue <00:09:59.921>from <00:10:00.155>where <00:10:00.388>you, <00:10:00.621>uh, <00:10:00.855>stopped

168
00:10:03.135 --> 00:10:04.755
<00:10:03.135>by <00:10:03.485>having <00:10:03.835>the <00:10:04.185>event <00:10:04.535>id.

169
00:10:07.845 --> 00:10:11.225
<00:10:07.845>And <00:10:07.972>for <00:10:08.099>open <00:10:08.226>ai, <00:10:08.354>give, <00:10:08.481>give <00:10:08.608>us <00:10:08.735>the <00:10:08.863>response <00:10:08.990>as <00:10:09.117>a <00:10:09.245>content.

170
00:10:12.085 --> 00:10:16.075
<00:10:12.085>In <00:10:12.260>the <00:10:12.435>response. <00:10:12.610>You <00:10:12.785>have <00:10:12.960>delta <00:10:13.135>data, <00:10:13.310>delta <00:10:13.485>content,

171
00:10:16.815 --> 00:10:18.755
<00:10:16.815>Gemini, <00:10:17.095>like <00:10:17.375>have <00:10:17.655>a <00:10:17.935>streaming <00:10:18.215>work.

172
00:10:26.885 --> 00:10:30.425
<00:10:26.885>And <00:10:27.025>this <00:10:27.165>is <00:10:27.305>an <00:10:27.444>example <00:10:27.585>of <00:10:27.725>code <00:10:27.865>about <00:10:28.005>how <00:10:28.145>we'll <00:10:28.285>do

173
00:10:30.425 --> 00:10:31.465
<00:10:30.425>that <00:10:30.737>in <00:10:31.049>next <00:10:31.361>year.

174
00:10:35.725 --> 00:10:38.665
<00:10:35.725>So <00:10:35.925>we <00:10:36.125>will <00:10:36.325>start <00:10:36.525>by <00:10:36.725>defining, <00:10:36.925>uh, <00:10:37.125>endpoint.

175
00:10:39.445 --> 00:10:40.465
<00:10:39.445>We <00:10:39.674>will <00:10:39.904>have <00:10:40.133>a <00:10:40.363>stream

176
00:10:41.445 --> 00:10:46.425
<00:10:41.445>and <00:10:41.678>we <00:10:41.911>will <00:10:42.145>open, <00:10:42.378>um, <00:10:42.611>uh, <00:10:42.845>connection

177
00:10:46.605 --> 00:10:49.465
<00:10:46.605>by, <00:10:46.780>and <00:10:46.955>we'll <00:10:47.130>use <00:10:47.305>in <00:10:47.480>the <00:10:47.655>header <00:10:47.830>content <00:10:48.005>type

178
00:10:49.725 --> 00:10:51.465
<00:10:49.725>as <00:10:50.075>text <00:10:50.425>or <00:10:50.775>Evan <00:10:51.125>Stream.

179
00:10:53.245 --> 00:10:57.825
<00:10:53.245>And <00:10:53.385>also <00:10:53.525>we <00:10:53.665>will <00:10:53.805>allow <00:10:53.945>for <00:10:54.085>the <00:10:54.225>header <00:10:54.365>X <00:10:54.505>axle <00:10:54.645>buffering

180
00:10:57.925 --> 00:11:01.625
<00:10:57.925>to <00:10:58.099>know, <00:10:58.275>because, <00:10:58.449>uh, <00:10:58.625>this <00:10:58.800>will <00:10:58.974>override <00:10:59.150>engine <00:10:59.324>X

181
00:11:01.645 --> 00:11:04.145
<00:11:01.645>or <00:11:01.819>some <00:11:01.995>proxies <00:11:02.170>that <00:11:02.345>will <00:11:02.520>maybe <00:11:02.694>prevent <00:11:02.870>you <00:11:03.045>from

182
00:11:04.145 --> 00:11:05.985
<00:11:04.145>using, <00:11:04.611>uh, <00:11:05.078>the <00:11:05.545>streaming.

183
00:11:07.345 --> 00:11:10.965
<00:11:07.345>And <00:11:07.520>also <00:11:07.695>from, <00:11:07.870>uh, <00:11:08.045>DevOps, <00:11:08.220>DevOps <00:11:08.395>perspective, <00:11:08.570>you <00:11:08.745>could,

184
00:11:11.185 --> 00:11:13.205
<00:11:11.185>uh, <00:11:11.651>configure <00:11:12.118>engine <00:11:12.584>X

185
00:11:13.205 --> 00:11:14.445
<00:11:13.205>or <00:11:13.484>whatever <00:11:13.763>server <00:11:14.042>you're <00:11:14.321>using

186
00:11:14.505 --> 00:11:17.645
<00:11:14.505>for <00:11:14.705>this <00:11:14.905>endpoint <00:11:15.105>specifically <00:11:15.305>to <00:11:15.505>allow <00:11:15.705>more <00:11:15.905>resources

187
00:11:17.665 --> 00:11:19.165
<00:11:17.665>and <00:11:18.002>this <00:11:18.339>other <00:11:18.677>for <00:11:19.015>it.

188
00:11:21.545 --> 00:11:26.375
<00:11:21.545>And <00:11:21.661>if <00:11:21.778>we <00:11:21.895>are <00:11:22.011>using <00:11:22.128>open, <00:11:22.245>open <00:11:22.361>ai, <00:11:22.478>so <00:11:22.594>we'll <00:11:22.711>use <00:11:22.828>the <00:11:22.944>package,

189
00:11:26.585 --> 00:11:30.005
<00:11:26.585>we'll <00:11:26.865>chat <00:11:27.145>and <00:11:27.425>we <00:11:27.705>will <00:11:27.985>create

190
00:11:30.695 --> 00:11:31.965
<00:11:30.695>using <00:11:31.266>the <00:11:31.838>model.

191
00:11:32.425 --> 00:11:35.325
<00:11:32.425>We <00:11:32.599>will <00:11:32.775>specify <00:11:32.949>the, <00:11:33.125>whatever <00:11:33.300>the <00:11:33.474>model <00:11:33.650>we <00:11:33.824>want.

192
00:11:35.905 --> 00:11:40.325
<00:11:35.905>But, <00:11:36.105>uh, <00:11:36.305>we <00:11:36.505>will <00:11:36.704>add <00:11:36.905>stream <00:11:37.105>by <00:11:37.305>true.

193
00:11:42.065 --> 00:11:46.805
<00:11:42.065>And <00:11:42.220>this <00:11:42.376>will <00:11:42.531>keep <00:11:42.687>giving <00:11:42.842>us, <00:11:42.998>uh, <00:11:43.153>the <00:11:43.309>response, <00:11:43.465>uh,

194
00:11:46.855 --> 00:11:48.765
<00:11:46.855>chunk <00:11:47.088>by <00:11:47.321>chunk, <00:11:47.555>not <00:11:47.788>the <00:11:48.021>forest <00:11:48.255>response.

195
00:11:48.785 --> 00:11:51.125
<00:11:48.785>So <00:11:48.959>we <00:11:49.135>don't <00:11:49.310>need <00:11:49.485>to <00:11:49.660>wait <00:11:49.834>till <00:11:50.010>the <00:11:50.185>end

196
00:11:56.855 --> 00:11:57.555
<00:11:56.855>As <00:11:57.065>we <00:11:57.275>see <00:11:57.484>here.

197
00:11:57.655 --> 00:11:58.955
<00:11:57.655>We <00:11:57.947>will <00:11:58.240>get <00:11:58.532>the <00:11:58.825>content

198
00:12:01.975 --> 00:12:03.835
<00:12:01.975>and <00:12:02.255>the <00:12:02.535>response <00:12:02.815>will <00:12:03.095>keep, <00:12:03.375>right.

199
00:12:04.395 --> 00:12:08.555
<00:12:04.395>Whatever <00:12:04.550>token <00:12:04.706>we <00:12:04.861>get <00:12:05.017>will <00:12:05.172>receive <00:12:05.328>it <00:12:05.483>to <00:12:05.639>the <00:12:05.795>front.

200
00:12:08.915 --> 00:12:11.315
<00:12:08.915>Whatever, <00:12:09.115>uh, <00:12:09.314>part <00:12:09.515>of <00:12:09.714>the <00:12:09.915>solution <00:12:10.115>you <00:12:10.314>get,

201
00:12:11.995 --> 00:12:13.275
<00:12:11.995>receive <00:12:12.283>it <00:12:12.571>into <00:12:12.859>the <00:12:13.146>front.

202
00:12:14.105 --> 00:12:15.315
<00:12:14.105>Same <00:12:14.468>happen <00:12:14.831>with <00:12:15.194>Gemini,

203
00:12:15.335 --> 00:12:18.115
<00:12:15.335>but <00:12:15.535>we <00:12:15.735>have <00:12:15.935>a <00:12:16.135>built <00:12:16.335>in <00:12:16.535>function <00:12:16.735>like

204
00:12:18.835 --> 00:12:19.915
<00:12:18.835>generate <00:12:19.321>content <00:12:19.807>stream.

205
00:12:20.575 --> 00:12:22.995
<00:12:20.575>Uh, <00:12:20.775>this <00:12:20.975>function <00:12:21.175>call <00:12:21.375>will <00:12:21.575>take <00:12:21.775>the <00:12:21.975>prompt

206
00:12:23.015 --> 00:12:26.715
<00:12:23.015>and <00:12:23.170>will <00:12:23.326>give <00:12:23.481>you <00:12:23.637>the <00:12:23.792>response <00:12:23.948>as <00:12:24.103>a <00:12:24.259>content <00:12:24.415>stream.

207
00:12:42.645 --> 00:12:45.905
<00:12:42.645>And <00:12:42.800>for, <00:12:42.956>for <00:12:43.111>the <00:12:43.267>front <00:12:43.422>end, <00:12:43.578>we <00:12:43.733>will <00:12:43.889>have, <00:12:44.045>um,

208
00:12:47.005 --> 00:12:48.185
<00:12:47.005>we <00:12:47.270>will <00:12:47.536>always <00:12:47.801>the <00:12:48.067>connection

209
00:12:48.845 --> 00:12:52.105
<00:12:48.845>and <00:12:49.195>get <00:12:49.545>the, <00:12:49.895>the <00:12:50.245>response.

210
00:12:53.005 --> 00:12:57.065
<00:12:53.005>And <00:12:53.132>we <00:12:53.259>will <00:12:53.386>also, <00:12:53.514>we'll <00:12:53.641>see <00:12:53.768>how <00:12:53.895>to <00:12:54.023>tie <00:12:54.150>right <00:12:54.277>the <00:12:54.405>component

211
00:12:57.405 --> 00:12:59.185
<00:12:57.405>for <00:12:57.871>an <00:12:58.338>effective <00:12:58.805>way.

212
00:13:00.625 --> 00:13:04.925
<00:13:00.625>So <00:13:00.765>we <00:13:00.905>will <00:13:01.045>just <00:13:01.185>use <00:13:01.325>new <00:13:01.465>event <00:13:01.605>stream, <00:13:01.745>new <00:13:01.885>event <00:13:02.025>source.

213
00:13:05.385 --> 00:13:10.175
<00:13:05.385>And <00:13:05.512>here <00:13:05.639>we'll <00:13:05.766>add <00:13:05.894>the <00:13:06.021>URL <00:13:06.148>that, <00:13:06.275>uh, <00:13:06.403>to <00:13:06.530>the <00:13:06.657>end <00:13:06.785>point

214
00:13:10.175 --> 00:13:12.335
<00:13:10.175>that <00:13:10.454>we <00:13:10.734>streamed <00:13:11.015>the, <00:13:11.295>the <00:13:11.574>response.

215
00:13:14.965 --> 00:13:17.105
<00:13:14.965>And <00:13:15.198>here <00:13:15.431>we <00:13:15.665>will <00:13:15.898>add <00:13:16.131>set <00:13:16.365>text.

216
00:13:18.645 --> 00:13:22.705
<00:13:18.645>And <00:13:18.800>this <00:13:18.956>will, <00:13:19.111>whatever <00:13:19.267>response <00:13:19.422>we <00:13:19.578>will <00:13:19.733>get, <00:13:19.889>will, <00:13:20.045>uh,

217
00:13:22.885 --> 00:13:25.665
<00:13:22.885>and <00:13:23.012>whatever <00:13:23.139>text <00:13:23.266>we, <00:13:23.394>we <00:13:23.521>will <00:13:23.648>get <00:13:23.775>will <00:13:23.903>keep <00:13:24.030>adding <00:13:24.157>to <00:13:24.285>it.

218
00:13:27.125 --> 00:13:31.065
<00:13:27.125>The <00:13:27.252>next <00:13:27.379>chunk <00:13:27.506>that <00:13:27.634>we, <00:13:27.761>we <00:13:27.888>get <00:13:28.015>from <00:13:28.143>the, <00:13:28.270>from <00:13:28.397>the <00:13:28.525>server,

219
00:13:34.055 --> 00:13:38.235
<00:13:34.055>if <00:13:34.210>everything <00:13:34.366>is <00:13:34.521>fine, <00:13:34.677>we <00:13:34.832>will <00:13:34.988>set, <00:13:35.143>if <00:13:35.299>the <00:13:35.454>connection

220
00:13:39.825 --> 00:13:41.875
<00:13:39.825>have <00:13:40.058>an <00:13:40.291>error, <00:13:40.525>we <00:13:40.758>will <00:13:40.991>we'll <00:13:41.225>close.

221
00:13:42.495 --> 00:13:44.555
<00:13:42.495>And <00:13:42.695>we, <00:13:42.895>and <00:13:43.095>this <00:13:43.295>actually <00:13:43.495>save <00:13:43.695>a <00:13:43.895>lot

222
00:13:44.555 --> 00:13:47.915
<00:13:44.555>of <00:13:44.729>tokens <00:13:44.905>in <00:13:45.079>case <00:13:45.255>you <00:13:45.430>could <00:13:45.604>stop <00:13:45.780>the <00:13:45.954>bottom

223
00:13:48.335 --> 00:13:50.435
<00:13:48.335>or <00:13:48.685>cancel, <00:13:49.035>uh, <00:13:49.385>the <00:13:49.735>request.

224
00:13:50.775 --> 00:13:55.315
<00:13:50.775>You <00:13:50.915>don't <00:13:51.055>consume <00:13:51.194>tokens <00:13:51.334>from <00:13:51.475>ar, <00:13:51.615>uh, <00:13:51.755>from <00:13:51.895>charge <00:13:52.035>GBT <00:13:52.175>or,

225
00:13:55.935 --> 00:13:56.995
<00:13:55.935>or <00:13:56.252>whatever <00:13:56.571>the <00:13:56.889>provider.

226
00:13:57.175 --> 00:14:00.475
<00:13:57.175>So <00:13:57.330>you <00:13:57.486>saving, <00:13:57.641>saving <00:13:57.797>a <00:13:57.952>lot <00:13:58.108>of <00:13:58.263>costs, <00:13:58.419>which <00:13:58.574>is,

227
00:14:00.475 --> 00:14:02.555
<00:14:00.475>could <00:14:00.941>be <00:14:01.408>almost <00:14:01.875>25%.

228
00:14:05.535 --> 00:14:08.675
<00:14:05.535>And <00:14:05.709>here <00:14:05.885>and <00:14:06.060>here <00:14:06.235>to <00:14:06.410>display, <00:14:06.584>uh, <00:14:06.760>this <00:14:06.935>response,

229
00:14:11.535 --> 00:14:12.785
<00:14:11.535>like <00:14:11.910>we <00:14:12.285>say, <00:14:12.660>display.

230
00:14:13.645 --> 00:14:16.915
<00:14:13.645>And, <00:14:13.925>uh, <00:14:14.204>we <00:14:14.485>keep <00:14:14.765>displaying <00:14:15.045>the,

231
00:14:17.135 --> 00:14:19.075
<00:14:17.135>the <00:14:17.368>old <00:14:17.601>content <00:14:17.835>with <00:14:18.068>the <00:14:18.301>new <00:14:18.535>content.

232
00:14:20.935 --> 00:14:24.755
<00:14:20.935>We <00:14:21.090>could <00:14:21.246>also, <00:14:21.401>uh, <00:14:21.557>optimize <00:14:21.712>the <00:14:21.868>code <00:14:22.023>a <00:14:22.179>bit <00:14:22.334>to

233
00:14:25.915 --> 00:14:30.115
<00:14:25.915>configure <00:14:26.070>the <00:14:26.226>speed <00:14:26.381>of <00:14:26.537>typing <00:14:26.692>or <00:14:26.848>add <00:14:27.003>more, <00:14:27.159>uh, <00:14:27.314>configuration

234
00:14:30.175 --> 00:14:34.355
<00:14:30.175>or <00:14:30.330>front <00:14:30.486>end <00:14:30.641>style <00:14:30.797>to <00:14:30.952>it <00:14:31.108>based <00:14:31.263>on <00:14:31.419>the <00:14:31.574>requirements.

235
00:14:36.675 --> 00:14:40.775
<00:14:36.675>So <00:14:36.830>it's, <00:14:36.986>uh, <00:14:37.141>the <00:14:37.297>same <00:14:37.452>hook <00:14:37.608>that <00:14:37.763>we <00:14:37.919>have, <00:14:38.074>uh,

236
00:14:41.305 --> 00:14:44.975
<00:14:41.305>could <00:14:41.479>handle <00:14:41.655>the <00:14:41.829>frame <00:14:42.005>provider, <00:14:42.180>same <00:14:42.354>code, <00:14:42.530>just <00:14:42.704>how

237
00:14:44.975 --> 00:14:47.735
<00:14:44.975>to <00:14:45.150>get <00:14:45.325>the <00:14:45.500>response <00:14:45.675>from <00:14:45.850>the <00:14:46.025>a <00:14:46.200>BI <00:14:46.375>itself.

238
00:14:47.885 --> 00:14:49.295
<00:14:47.885>This <00:14:48.096>is <00:14:48.308>the <00:14:48.519>only <00:14:48.731>thing <00:14:48.942>that's <00:14:49.154>different.

239
00:14:57.425 --> 00:14:59.365
<00:14:57.425>We <00:14:57.658>could <00:14:57.891>see <00:14:58.125>a <00:14:58.358>repo <00:14:58.591>in <00:14:58.824>GitHub.

240
00:15:04.905 --> 00:15:09.225
<00:15:04.905>I <00:15:05.045>also <00:15:05.185>added <00:15:05.324>in <00:15:05.464>the <00:15:05.605>slide <00:15:05.745>this <00:15:05.885>also <00:15:06.025>using <00:15:06.165>next <00:15:06.305>Gs

241
00:15:09.225 --> 00:15:11.065
<00:15:09.225>and <00:15:09.925>SGS, <00:15:10.625>uh,

242
00:15:13.275 --> 00:15:14.575
<00:15:13.275>and <00:15:13.665>server <00:15:14.055>sent <00:15:14.445>Evan.

243
00:15:14.635 --> 00:15:18.955
<00:15:14.635>But, <00:15:14.835>uh, <00:15:15.035>in <00:15:15.235>a <00:15:15.435>different <00:15:15.635>perspective, <00:15:15.835>it <00:15:16.035>could,

244
00:15:19.375 --> 00:15:21.115
<00:15:19.375>the <00:15:19.608>demo <00:15:19.841>here <00:15:20.075>is <00:15:20.308>uploading <00:15:20.541>a <00:15:20.775>file

245
00:15:26.895 --> 00:15:30.475
<00:15:26.895>and <00:15:27.069>every <00:15:27.245>user <00:15:27.420>from <00:15:27.595>here <00:15:27.770>are <00:15:27.944>opening, <00:15:28.120>using, <00:15:28.295>uh,

246
00:15:30.475 --> 00:15:32.035
<00:15:30.475>Evan <00:15:30.825>source <00:15:31.175>to <00:15:31.525>the <00:15:31.875>backend.

247
00:15:32.895 --> 00:15:36.475
<00:15:32.895>And <00:15:33.128>he's <00:15:33.361>receiving <00:15:33.595>the, <00:15:33.828>the <00:15:34.061>file <00:15:34.295>immediately.

248
00:15:37.015 --> 00:15:41.035
<00:15:37.015>So <00:15:37.122>if <00:15:37.230>you <00:15:37.338>would <00:15:37.445>like <00:15:37.553>to <00:15:37.661>share, <00:15:37.768>uh, <00:15:37.876>a <00:15:37.984>file, <00:15:38.091>if <00:15:38.199>you <00:15:38.307>would <00:15:38.415>like

249
00:15:41.035 --> 00:15:44.435
<00:15:41.035>to <00:15:41.175>send <00:15:41.314>notification <00:15:41.454>to <00:15:41.594>all <00:15:41.735>users, <00:15:41.875>if <00:15:42.015>you <00:15:42.155>would <00:15:42.295>like <00:15:42.435>to,

250
00:15:44.655 --> 00:15:47.875
<00:15:44.655>if <00:15:44.795>I <00:15:44.935>have <00:15:45.074>a <00:15:45.214>user <00:15:45.355>have <00:15:45.495>different <00:15:45.635>application <00:15:45.775>like <00:15:45.915>Chrome, <00:15:46.055>uh,

251
00:15:48.055 --> 00:15:49.515
<00:15:48.055>or <00:15:48.383>mobile <00:15:48.712>application <00:15:49.040>or <00:15:49.369>cloud,

252
00:15:49.515 --> 00:15:51.795
<00:15:49.515>but <00:15:49.689>you <00:15:49.865>would <00:15:50.040>like <00:15:50.215>to <00:15:50.390>send <00:15:50.564>a <00:15:50.740>wish <00:15:50.915>notification

253
00:15:51.815 --> 00:15:55.195
<00:15:51.815>or <00:15:51.955>a <00:15:52.095>message, <00:15:52.235>you <00:15:52.375>could <00:15:52.515>send <00:15:52.655>it <00:15:52.795>in <00:15:52.935>a <00:15:53.075>different, <00:15:53.215>uh,

254
00:15:55.495 --> 00:15:57.395
<00:15:55.495>the <00:15:55.650>same <00:15:55.806>user <00:15:55.961>in <00:15:56.117>different <00:15:56.272>way <00:15:56.428>in <00:15:56.583>the <00:15:56.739>same <00:15:56.895>time.

255
00:16:08.995 --> 00:16:13.885
<00:16:08.995>This <00:16:09.170>is <00:16:09.345>the <00:16:09.520>client <00:16:09.695>side, <00:16:09.870>we <00:16:10.045>could <00:16:10.220>see <00:16:10.395>more.

256
00:16:28.175 --> 00:16:31.715
<00:16:28.175>You <00:16:28.314>just <00:16:28.454>connect <00:16:28.594>to <00:16:28.734>the <00:16:28.875>backend <00:16:29.015>end <00:16:29.155>point <00:16:29.295>that <00:16:29.435>we'll <00:16:29.574>use

257
00:16:31.815 --> 00:16:34.835
<00:16:31.815>for, <00:16:32.015>for <00:16:32.215>Evan <00:16:32.415>Source <00:16:32.615>open <00:16:32.815>request <00:16:33.015>from <00:16:33.215>it.

258
00:16:36.255 --> 00:16:39.395
<00:16:36.255>And, <00:16:36.410>uh, <00:16:36.566>just <00:16:36.721>use <00:16:36.877>open <00:16:37.032>source <00:16:37.188>to <00:16:37.343>open <00:16:37.499>a <00:16:37.655>connection.

259
00:16:40.855 --> 00:16:44.075
<00:16:40.855>And <00:16:41.030>here <00:16:41.205>you <00:16:41.380>could <00:16:41.555>handle, <00:16:41.730>uh, <00:16:41.905>the <00:16:42.080>type <00:16:42.255>of

260
00:16:44.215 --> 00:16:45.475
<00:16:44.215>of <00:16:44.441>data <00:16:44.668>that <00:16:44.895>you <00:16:45.122>are <00:16:45.349>sending.

261
00:16:46.035 --> 00:16:47.195
<00:16:46.035>'cause <00:16:46.184>you <00:16:46.333>send, <00:16:46.482>you <00:16:46.631>could <00:16:46.780>send <00:16:46.929>different <00:16:47.079>data,

262
00:16:47.195 --> 00:16:49.275
<00:16:47.195>you <00:16:47.395>could <00:16:47.595>send <00:16:47.795>notification, <00:16:47.995>you <00:16:48.195>could <00:16:48.395>send, <00:16:48.595>uh,

263
00:16:49.545 --> 00:16:50.555
<00:16:49.545>data <00:16:49.848>to <00:16:50.151>be <00:16:50.454>saved.

264
00:16:51.455 --> 00:16:55.075
<00:16:51.455>And <00:16:51.571>we <00:16:51.688>will, <00:16:51.805>we <00:16:51.921>will <00:16:52.038>go <00:16:52.155>to <00:16:52.271>next <00:16:52.388>demo <00:16:52.505>or <00:16:52.621>next <00:16:52.738>use <00:16:52.855>cases.

265
00:16:55.405 --> 00:16:56.715
<00:16:55.405>We'll <00:16:55.699>see <00:16:55.994>this <00:16:56.289>in <00:16:56.584>details.

266
00:16:57.375 --> 00:17:00.195
<00:16:57.375>So <00:16:57.655>if <00:16:57.935>this <00:16:58.215>functional <00:16:58.495>receiving <00:16:58.775>notification,

267
00:17:00.965 --> 00:17:03.115
<00:17:00.965>it'll <00:17:01.245>be <00:17:01.525>send <00:17:01.805>data, <00:17:02.085>a <00:17:02.365>notification,

268
00:17:03.295 --> 00:17:06.115
<00:17:03.295>and <00:17:03.469>we <00:17:03.645>could, <00:17:03.819>if <00:17:03.995>the <00:17:04.170>data <00:17:04.345>type <00:17:04.520>is <00:17:04.694>notification,

269
00:17:06.175 --> 00:17:07.555
<00:17:06.175>we <00:17:06.589>will <00:17:07.002>display <00:17:07.417>notification.

270
00:17:08.375 --> 00:17:10.555
<00:17:08.375>Or <00:17:08.550>if <00:17:08.724>it's <00:17:08.900>different <00:17:09.075>data, <00:17:09.250>we <00:17:09.425>could <00:17:09.599>handle <00:17:09.775>it.

271
00:17:10.695 --> 00:17:14.555
<00:17:10.694>Either <00:17:10.811>we, <00:17:10.928>we <00:17:11.044>store <00:17:11.161>it <00:17:11.278>in <00:17:11.395>the <00:17:11.511>local <00:17:11.628>storage <00:17:11.744>or <00:17:11.861>we <00:17:11.978>display <00:17:12.095>it

272
00:17:15.055 --> 00:17:18.195
<00:17:15.055>or <00:17:15.210>see <00:17:15.366>whatever <00:17:15.521>we <00:17:15.677>would <00:17:15.832>like <00:17:15.988>to <00:17:16.143>do <00:17:16.299>with <00:17:16.455>it.

273
00:17:20.835 --> 00:17:22.045
<00:17:20.835>Also <00:17:21.052>in <00:17:21.270>the, <00:17:21.488>in <00:17:21.706>the <00:17:21.924>errors,

274
00:17:22.045 --> 00:17:24.765
<00:17:22.045>the <00:17:22.245>connection <00:17:22.445>doesn't <00:17:22.645>stay <00:17:22.845>open, <00:17:23.045>it <00:17:23.245>close <00:17:23.445>immediately,

275
00:17:24.945 --> 00:17:26.285
<00:17:24.944>so <00:17:25.186>it <00:17:25.427>doesn't <00:17:25.668>take <00:17:25.909>from <00:17:26.151>resources.

276
00:17:41.285 --> 00:17:43.465
<00:17:41.285>And <00:17:41.485>for <00:17:41.685>the <00:17:41.885>server, <00:17:42.085>bot <00:17:42.285>was <00:17:42.485>next <00:17:42.685>years.

277
00:17:55.535 --> 00:17:58.145
<00:17:55.535>Here <00:17:55.735>we <00:17:55.935>add <00:17:56.135>a <00:17:56.335>client, <00:17:56.535>so <00:17:56.735>everyone <00:17:56.935>connected

278
00:17:58.145 --> 00:17:59.305
<00:17:58.145>to, <00:17:58.406>to <00:17:58.667>the <00:17:58.928>end <00:17:59.189>point.

279
00:17:59.365 --> 00:18:03.765
<00:17:59.365>We, <00:17:59.520>we <00:17:59.676>add <00:17:59.831>it <00:17:59.987>in <00:18:00.142>the <00:18:00.298>list, <00:18:00.453>which <00:18:00.609>is, <00:18:00.765>uh,

280
00:18:04.125 --> 00:18:06.365
<00:18:04.125>a <00:18:04.280>list <00:18:04.436>of <00:18:04.591>clients <00:18:04.747>or <00:18:04.902>subscriber <00:18:05.058>to <00:18:05.213>the <00:18:05.369>end <00:18:05.525>point.

281
00:18:11.725 --> 00:18:14.545
<00:18:11.725>And <00:18:11.865>if <00:18:12.004>we, <00:18:12.145>we <00:18:12.284>send <00:18:12.425>a <00:18:12.564>notification, <00:18:12.705>we <00:18:12.844>trigger <00:18:12.985>an <00:18:13.125>event,

282
00:18:15.475 --> 00:18:16.705
<00:18:15.475>which <00:18:15.751>is <00:18:16.028>a <00:18:16.305>notification <00:18:16.581>and,

283
00:18:16.705 --> 00:18:20.545
<00:18:16.705>and <00:18:16.832>should <00:18:16.959>include <00:18:17.086>the <00:18:17.214>data <00:18:17.341>that <00:18:17.468>we <00:18:17.595>want <00:18:17.723>to, <00:18:17.850>uh, <00:18:17.977>to <00:18:18.105>send,

284
00:18:28.285 --> 00:18:29.865
<00:18:28.285>if <00:18:28.460>we <00:18:28.635>would, <00:18:28.810>would <00:18:28.985>like <00:18:29.160>to <00:18:29.335>remove <00:18:29.510>the <00:18:29.685>user.

285
00:18:30.005 --> 00:18:32.265
<00:18:30.005>We <00:18:30.238>just <00:18:30.471>remove <00:18:30.705>it <00:18:30.938>from <00:18:31.171>client <00:18:31.405>list.

286
00:19:08.145 --> 00:19:10.325
<00:19:08.145>And <00:19:08.272>this <00:19:08.399>is <00:19:08.526>for <00:19:08.654>the <00:19:08.781>end <00:19:08.908>invoices <00:19:09.035>that <00:19:09.163>we <00:19:09.290>will <00:19:09.417>use <00:19:09.545>for,

287
00:19:10.385 --> 00:19:13.045
<00:19:10.385>for <00:19:10.665>opening, <00:19:10.945>uh, <00:19:11.225>a <00:19:11.504>client <00:19:11.785>trip.

288
00:19:39.775 --> 00:19:43.715
<00:19:39.775>So, <00:19:39.950>uh, <00:19:40.125>if <00:19:40.300>we're <00:19:40.475>back <00:19:40.650>to <00:19:40.825>like <00:19:41.000>some <00:19:41.175>metrics,

289
00:19:44.335 --> 00:19:47.875
<00:19:44.335>we <00:19:44.475>will <00:19:44.615>see <00:19:44.755>that <00:19:44.895>token <00:19:45.035>by <00:19:45.175>token <00:19:45.315>or <00:19:45.455>chunk <00:19:45.595>by <00:19:45.735>chunk.

290
00:19:48.735 --> 00:19:52.195
<00:19:48.735>Uh, <00:19:48.935>there'll <00:19:49.135>be <00:19:49.334>a <00:19:49.534>big <00:19:49.735>difference <00:19:49.935>between <00:19:50.135>streaming

291
00:19:52.975 --> 00:19:56.465
<00:19:52.975>and <00:19:53.254>also <00:19:53.534>have <00:19:53.814>the <00:19:54.094>data <00:19:54.375>immediately.

292
00:20:05.495 --> 00:20:10.315
<00:20:05.495>We <00:20:05.635>just <00:20:05.774>need <00:20:05.915>also <00:20:06.054>to <00:20:06.195>add, <00:20:06.334>uh, <00:20:06.475>some <00:20:06.614>scaling <00:20:06.754>or <00:20:06.895>production

293
00:20:11.255 --> 00:20:15.355
<00:20:11.255>and <00:20:11.455>some <00:20:11.655>cases <00:20:11.855>like <00:20:12.055>add <00:20:12.255>a <00:20:12.455>earth <00:20:12.655>guard

294
00:20:15.895 --> 00:20:18.075
<00:20:15.895>and <00:20:16.175>also <00:20:16.455>have <00:20:16.735>a <00:20:17.014>rate <00:20:17.295>limiter.

295
00:20:19.695 --> 00:20:23.195
<00:20:19.695>We <00:20:19.928>also <00:20:20.161>have <00:20:20.395>to <00:20:20.628>keep <00:20:20.861>sending, <00:20:21.095>um,

296
00:20:24.815 --> 00:20:28.235
<00:20:24.815>to, <00:20:24.942>for <00:20:25.069>the <00:20:25.196>stream <00:20:25.324>to <00:20:25.451>be <00:20:25.578>always <00:20:25.705>alive, <00:20:25.833>you <00:20:25.960>have, <00:20:26.087>we <00:20:26.215>have

297
00:20:28.235 --> 00:20:30.675
<00:20:28.235>to <00:20:28.468>send <00:20:28.701>like <00:20:28.935>request <00:20:29.168>every <00:20:29.401>15 <00:20:29.635>seconds.

298
00:20:31.735 --> 00:20:33.715
<00:20:31.735>So <00:20:31.909>if <00:20:32.084>you <00:20:32.260>open <00:20:32.435>a <00:20:32.610>request <00:20:32.784>from <00:20:32.959>a <00:20:33.135>VI

299
00:20:33.895 --> 00:20:36.795
<00:20:33.895>or <00:20:34.128>dashboard, <00:20:34.361>it'll <00:20:34.595>keep <00:20:34.828>sending <00:20:35.061>a <00:20:35.295>request

300
00:20:36.795 --> 00:20:38.635
<00:20:36.795>or <00:20:37.028>make <00:20:37.261>sure <00:20:37.495>it's, <00:20:37.728>it's <00:20:37.961>a <00:20:38.195>request.

301
00:20:38.825 --> 00:20:40.355
<00:20:38.825>It's <00:20:39.169>connected <00:20:39.513>with <00:20:39.857>the <00:20:40.202>backend.

302
00:20:43.135 --> 00:20:46.195
<00:20:43.135>And <00:20:43.335>this <00:20:43.535>is <00:20:43.735>for <00:20:43.935>proxy <00:20:44.135>or <00:20:44.335>engine <00:20:44.535>X.

303
00:20:46.375 --> 00:20:50.725
<00:20:46.375>We <00:20:46.608>make <00:20:46.841>sure <00:20:47.075>that, <00:20:47.308>uh, <00:20:47.541>we <00:20:47.775>allowed

304
00:20:50.725 --> 00:20:52.085
<00:20:50.725>to <00:20:51.133>disable <00:20:51.541>the <00:20:51.949>buffering.

305
00:20:59.645 --> 00:21:02.625
<00:20:59.645>We <00:20:59.820>could <00:20:59.995>also <00:21:00.170>count <00:21:00.345>the <00:21:00.520>stream <00:21:00.695>tokens, <00:21:00.870>the <00:21:01.045>producers,

306
00:21:03.565 --> 00:21:06.145
<00:21:03.565>and <00:21:03.845>for <00:21:04.125>observatory, <00:21:04.405>uh, <00:21:04.685>we <00:21:04.965>could

307
00:21:07.975 --> 00:21:12.625
<00:21:07.975>keep <00:21:08.149>checking, <00:21:08.324>uh, <00:21:08.500>all <00:21:08.675>the <00:21:08.850>other <00:21:09.024>requests, <00:21:09.199>uh, <00:21:09.375>streaming

308
00:21:12.885 --> 00:21:17.425
<00:21:12.885>by <00:21:13.085>using <00:21:13.285>a <00:21:13.485>tool <00:21:13.685>like <00:21:13.885>pro <00:21:14.085>for <00:21:14.285>monitoring.

309
00:21:18.995 --> 00:21:22.615
<00:21:18.995>So <00:21:19.195>server, <00:21:19.395>site <00:21:19.594>server <00:21:19.794>sent <00:21:19.995>events <00:21:20.195>is <00:21:20.395>light,

310
00:21:22.995 --> 00:21:26.135
<00:21:22.995>but <00:21:23.195>we, <00:21:23.395>we <00:21:23.594>need <00:21:23.794>to <00:21:23.995>take <00:21:24.195>some <00:21:24.395>approach

311
00:21:27.755 --> 00:21:31.215
<00:21:27.755>and, <00:21:27.910>uh, <00:21:28.066>we <00:21:28.221>could <00:21:28.377>talk <00:21:28.532>more <00:21:28.688>about <00:21:28.843>scaling <00:21:28.999>of <00:21:29.155>it.

312
00:21:31.915 --> 00:21:34.975
<00:21:31.915>So <00:21:32.148>it's <00:21:32.381>pretty, <00:21:32.615>uh, <00:21:32.848>next <00:21:33.081>year's <00:21:33.315>directly

313
00:21:35.005 --> 00:21:37.295
<00:21:35.005>with <00:21:35.238>a <00:21:35.471>lot <00:21:35.705>balancer <00:21:35.938>is <00:21:36.171>very <00:21:36.405>good.

314
00:21:37.515 --> 00:21:42.415
<00:21:37.515>If <00:21:37.865>we <00:21:38.215>having, <00:21:38.565>um, <00:21:38.915>10,000

315
00:21:43.255 --> 00:21:47.655
<00:21:43.255>requests <00:21:43.410>connected <00:21:43.566>in <00:21:43.721>the <00:21:43.877>same <00:21:44.032>time, <00:21:44.188>this <00:21:44.343>will <00:21:44.499>be <00:21:44.655>fine.

316
00:21:49.235 --> 00:21:51.975
<00:21:49.235>Uh, <00:21:49.514>we <00:21:49.794>don't <00:21:50.074>have <00:21:50.354>any <00:21:50.635>complexity.

317
00:21:52.025 --> 00:21:55.575
<00:21:52.025>Everything <00:21:52.258>is <00:21:52.491>working <00:21:52.725>fine <00:21:52.958>on <00:21:53.191>a <00:21:53.425>server

318
00:21:56.035 --> 00:21:59.575
<00:21:56.035>for <00:21:56.210>AWS <00:21:56.385>like <00:21:56.560>T <00:21:56.735>three, <00:21:56.910>everything <00:21:57.085>should <00:21:57.260>be <00:21:57.435>fine.

319
00:21:59.595 --> 00:22:04.575
<00:21:59.595>But <00:21:59.722>if <00:21:59.849>we <00:21:59.976>scaling <00:22:00.104>the <00:22:00.231>users, <00:22:00.358>we <00:22:00.485>could, <00:22:00.613>we <00:22:00.740>have <00:22:00.867>to, <00:22:00.995>um,

320
00:22:06.575 --> 00:22:08.935
<00:22:06.575>organize <00:22:06.808>and <00:22:07.041>manage <00:22:07.275>how <00:22:07.508>we <00:22:07.741>will <00:22:07.975>distribute

321
00:22:09.195 --> 00:22:13.695
<00:22:09.195>and <00:22:09.350>sending, <00:22:09.506>uh, <00:22:09.661>the <00:22:09.817>connected <00:22:09.972>users <00:22:10.128>how <00:22:10.283>we <00:22:10.439>distribute <00:22:10.595>the,

322
00:22:14.035 --> 00:22:15.055
<00:22:14.035>uh, <00:22:14.341>data <00:22:14.647>to <00:22:14.953>them.

323
00:22:15.955 --> 00:22:17.735
<00:22:15.955>So <00:22:16.188>if <00:22:16.421>we <00:22:16.655>are <00:22:16.888>talking <00:22:17.121>about <00:22:17.355>10

324
00:22:17.875 --> 00:22:22.075
<00:22:17.875>or <00:22:18.075>50, <00:22:18.275>we <00:22:18.475>could <00:22:18.675>use <00:22:18.875>reader <00:22:19.075>streams, <00:22:19.275>uh,

325
00:22:22.655 --> 00:22:25.115
<00:22:22.655>to <00:22:22.810>queue <00:22:22.966>the, <00:22:23.121>the, <00:22:23.277>all <00:22:23.432>the <00:22:23.588>requests <00:22:23.743>that <00:22:23.899>we <00:22:24.055>send.

326
00:22:25.735 --> 00:22:27.875
<00:22:25.735>So <00:22:25.909>if <00:22:26.084>we <00:22:26.260>would <00:22:26.435>like <00:22:26.610>to <00:22:26.784>send <00:22:26.959>the <00:22:27.135>notification

327
00:22:27.975 --> 00:22:29.715
<00:22:27.975>to <00:22:28.441>all <00:22:28.908>connected <00:22:29.375>users

328
00:22:30.095 --> 00:22:33.635
<00:22:30.095>or <00:22:30.375>the <00:22:30.655>application, <00:22:30.935>same <00:22:31.215>as <00:22:31.495>WhatsApp.

329
00:22:33.855 --> 00:22:36.835
<00:22:33.855>If <00:22:33.982>we <00:22:34.109>added <00:22:34.236>a <00:22:34.364>new <00:22:34.491>feature, <00:22:34.618>we <00:22:34.745>would <00:22:34.873>like <00:22:35.000>to <00:22:35.127>add, <00:22:35.255>send

330
00:22:37.555 --> 00:22:39.075
<00:22:37.555>a <00:22:37.828>notification <00:22:38.102>of <00:22:38.375>a <00:22:38.649>new <00:22:38.923>feature

331
00:22:39.175 --> 00:22:41.195
<00:22:39.175>to <00:22:39.455>all <00:22:39.735>user <00:22:40.014>opening <00:22:40.294>new <00:22:40.575>WhatsApp.

332
00:22:41.735 --> 00:22:45.995
<00:22:41.735>You <00:22:41.875>could, <00:22:42.014>uh, <00:22:42.155>uh, <00:22:42.294>we <00:22:42.435>need <00:22:42.574>to <00:22:42.715>stream <00:22:42.854>or <00:22:42.995>a <00:22:43.135>queue

333
00:22:46.255 --> 00:22:49.355
<00:22:46.255>or <00:22:46.410>to <00:22:46.566>a <00:22:46.721>way <00:22:46.877>to <00:22:47.032>manage <00:22:47.188>how <00:22:47.343>we <00:22:47.499>will <00:22:47.655>deliver

334
00:22:50.215 --> 00:22:51.675
<00:22:50.215>and <00:22:50.653>push <00:22:51.091>this <00:22:51.529>data.

335
00:22:53.575 --> 00:22:57.835
<00:22:53.575>If <00:22:53.702>we <00:22:53.829>are <00:22:53.956>streaming <00:22:54.084>more, <00:22:54.211>we <00:22:54.338>could <00:22:54.465>use <00:22:54.593>a, <00:22:54.720>a <00:22:54.847>hub <00:22:54.975>approach,

336
00:22:59.945 --> 00:23:03.495
<00:22:59.945>which <00:23:00.225>is, <00:23:00.504>uh, <00:23:00.784>more <00:23:01.064>than <00:23:01.345>infrastructure

337
00:23:03.795 --> 00:23:05.215
<00:23:03.795>for <00:23:04.221>server <00:23:04.647>sent <00:23:05.072>events.

338
00:23:05.595 --> 00:23:08.575
<00:23:05.595>We <00:23:05.795>were <00:23:05.995>not <00:23:06.195>using <00:23:06.395>any <00:23:06.595>more <00:23:06.795>details <00:23:06.995>just

339
00:23:08.595 --> 00:23:11.815
<00:23:08.595>for <00:23:09.061>another <00:23:09.528>management, <00:23:09.995>uh,

340
00:23:12.845 --> 00:23:16.215
<00:23:12.845>another <00:23:13.045>management <00:23:13.245>or <00:23:13.445>infrastructure <00:23:13.645>about <00:23:13.845>how <00:23:14.045>we <00:23:14.245>push

341
00:23:24.105 --> 00:23:26.325
<00:23:24.105>and <00:23:24.338>also <00:23:24.571>could <00:23:24.805>handle <00:23:25.038>the <00:23:25.271>auto <00:23:25.505>reconnect.

342
00:23:26.505 --> 00:23:28.965
<00:23:26.505>Uh, <00:23:26.738>if, <00:23:26.971>uh, <00:23:27.205>the <00:23:27.438>data <00:23:27.671>didn't <00:23:27.905>received

343
00:23:29.225 --> 00:23:30.885
<00:23:29.225>to <00:23:29.458>the <00:23:29.691>user, <00:23:29.925>it'll <00:23:30.158>send <00:23:30.391>it <00:23:30.625>again.

344
00:23:31.625 --> 00:23:35.085
<00:23:31.625>But <00:23:31.780>server <00:23:31.936>side, <00:23:32.091>server <00:23:32.247>sent <00:23:32.402>even <00:23:32.558>itself. <00:23:32.713>It's, <00:23:32.869>it's <00:23:33.025>enough.

345
00:23:45.035 --> 00:23:49.565
<00:23:45.035>Most <00:23:45.190>of <00:23:45.346>the <00:23:45.501>AI <00:23:45.657>providers <00:23:45.812>already <00:23:45.968>have, <00:23:46.123>uh, <00:23:46.279>token <00:23:46.435>streaming

346
00:23:49.565 --> 00:23:52.805
<00:23:49.565>or <00:23:49.798>streaming <00:23:50.031>feature, <00:23:50.265>either <00:23:50.498>token <00:23:50.731>by <00:23:50.965>token

347
00:23:53.065 --> 00:23:56.965
<00:23:53.065>or <00:23:53.220>the <00:23:53.376>only <00:23:53.531>one, <00:23:53.687>uh, <00:23:53.842>Gemini <00:23:53.998>have <00:23:54.153>a <00:23:54.309>streaming <00:23:54.465>part.

348
00:23:58.825 --> 00:24:03.645
<00:23:58.825>All <00:23:58.952>of <00:23:59.079>them <00:23:59.206>support <00:23:59.334>them <00:23:59.461>by <00:23:59.588>native <00:23:59.715>way <00:23:59.843>or <00:23:59.970>proxy, <00:24:00.097>or <00:24:00.225>SDK.

349
00:24:05.915 --> 00:24:10.015
<00:24:05.915>And <00:24:06.042>the <00:24:06.169>first <00:24:06.296>one, <00:24:06.424>if <00:24:06.551>you <00:24:06.678>would <00:24:06.805>like <00:24:06.933>to, <00:24:07.060>to <00:24:07.187>speed <00:24:07.315>is

350
00:24:10.625 --> 00:24:14.935
<00:24:10.625>group <00:24:10.858>this, <00:24:11.091>this <00:24:11.325>have <00:24:11.558>the, <00:24:11.791>the <00:24:12.025>lowest

351
00:24:16.495 --> 00:24:17.865
<00:24:16.495>time <00:24:16.803>till <00:24:17.111>the <00:24:17.419>first <00:24:17.728>token.

352
00:24:24.355 --> 00:24:27.335
<00:24:24.355>So <00:24:24.635>from <00:24:24.915>our <00:24:25.195>perspective <00:24:25.475>of <00:24:25.755>speed

353
00:24:27.755 --> 00:24:31.975
<00:24:27.755>or <00:24:27.930>real <00:24:28.105>time, <00:24:28.280>we <00:24:28.455>could <00:24:28.630>rank <00:24:28.805>crook <00:24:28.980>or <00:24:29.155>Gemini

354
00:24:32.155 --> 00:24:34.575
<00:24:32.155>and <00:24:32.435>also <00:24:32.715>open <00:24:32.995>AI <00:24:33.274>after <00:24:33.555>it.

355
00:24:46.385 --> 00:24:48.445
<00:24:46.385>And <00:24:46.618>the <00:24:46.851>difference <00:24:47.085>between <00:24:47.318>both <00:24:47.551>of <00:24:47.785>them,

356
00:24:48.785 --> 00:24:52.085
<00:24:48.785>not <00:24:48.940>a <00:24:49.096>big <00:24:49.251>difference <00:24:49.407>just <00:24:49.562>about <00:24:49.718>how <00:24:49.873>we <00:24:50.029>would <00:24:50.185>like

357
00:24:52.085 --> 00:24:56.925
<00:24:52.085>to <00:24:52.260>present <00:24:52.435>the <00:24:52.610>UI <00:24:52.785>or <00:24:52.960>based <00:24:53.135>on <00:24:53.310>our <00:24:53.485>application.

358
00:24:57.505 --> 00:24:59.765
<00:24:57.505>So <00:24:57.680>we <00:24:57.855>would <00:24:58.030>like <00:24:58.205>to <00:24:58.380>present <00:24:58.555>the <00:24:58.730>whole <00:24:58.905>sentence

359
00:25:00.305 --> 00:25:02.645
<00:25:00.305>or <00:25:00.585>letter <00:25:00.865>by <00:25:01.145>letter <00:25:01.425>like <00:25:01.705>GBT.

360
00:25:05.705 --> 00:25:08.885
<00:25:05.705>And <00:25:05.832>as <00:25:05.959>I <00:25:06.086>said, <00:25:06.214>even <00:25:06.341>if <00:25:06.468>you <00:25:06.595>would <00:25:06.723>like <00:25:06.850>to <00:25:06.977>using <00:25:07.105>Gemini.

361
00:25:08.885 --> 00:25:11.445
<00:25:08.885>And <00:25:09.040>I <00:25:09.196>would <00:25:09.351>like <00:25:09.507>to <00:25:09.662>present <00:25:09.818>it <00:25:09.973>letter <00:25:10.129>by <00:25:10.285>letter.

362
00:25:11.505 --> 00:25:12.645
<00:25:11.505>You <00:25:11.761>could <00:25:12.018>take <00:25:12.274>the <00:25:12.531>sentence

363
00:25:12.705 --> 00:25:15.685
<00:25:12.705>and <00:25:12.832>still <00:25:12.959>display <00:25:13.086>it <00:25:13.214>from <00:25:13.341>the <00:25:13.468>front <00:25:13.595>end, <00:25:13.723>A <00:25:13.850>letter <00:25:13.977>by <00:25:14.105>letter.

364
00:25:30.695 --> 00:25:33.545
<00:25:30.695>This <00:25:30.870>is <00:25:31.044>like <00:25:31.220>some <00:25:31.395>features <00:25:31.570>that <00:25:31.745>we <00:25:31.919>are, <00:25:32.095>uh,

365
00:25:33.595 --> 00:25:36.385
<00:25:33.595>using <00:25:33.945>the <00:25:34.295>streaming <00:25:34.645>real <00:25:34.995>time,

366
00:25:37.475 --> 00:25:41.325
<00:25:37.475>like <00:25:37.675>shared <00:25:37.875>assistance <00:25:38.074>or <00:25:38.274>good <00:25:38.475>suggestion <00:25:38.675>like <00:25:38.875>copilot.

367
00:25:41.705 --> 00:25:45.165
<00:25:41.705>We <00:25:41.860>could <00:25:42.016>also <00:25:42.171>use <00:25:42.327>it, <00:25:42.482>uh, <00:25:42.638>to <00:25:42.793>text, <00:25:42.949>to <00:25:43.105>speech

368
00:25:46.555 --> 00:25:49.935
<00:25:46.555>or, <00:25:46.788>uh, <00:25:47.021>search <00:25:47.255>result <00:25:47.488>or <00:25:47.721>image <00:25:47.955>generation.

369
00:25:52.245 --> 00:25:53.575
<00:25:52.245>Also <00:25:52.544>for, <00:25:52.843>for <00:25:53.142>I <00:25:53.442>OT

370
00:25:53.635 --> 00:25:57.335
<00:25:53.635>and <00:25:53.810>analytics, <00:25:53.985>if <00:25:54.160>we <00:25:54.335>pushing <00:25:54.510>logs <00:25:54.685>from <00:25:54.860>one <00:25:55.035>way.

371
00:26:05.315 --> 00:26:08.205
<00:26:05.315>This <00:26:05.515>is <00:26:05.715>also <00:26:05.915>another <00:26:06.115>example <00:26:06.315>of <00:26:06.515>using, <00:26:06.715>uh,

372
00:26:10.425 --> 00:26:11.525
<00:26:10.425>server <00:26:10.920>sent <00:26:11.415>events.

373
00:26:12.305 --> 00:26:16.055
<00:26:12.305>And, <00:26:12.585>uh, <00:26:12.865>we <00:26:13.145>was <00:26:13.425>building, <00:26:13.705>uh,

374
00:26:17.895 --> 00:26:22.245
<00:26:17.895>uh, <00:26:18.050>GBT <00:26:18.206>and <00:26:18.361>we <00:26:18.517>would, <00:26:18.672>we, <00:26:18.828>we <00:26:18.983>have <00:26:19.139>custom <00:26:19.295>GBT

375
00:26:22.785 --> 00:26:26.645
<00:26:22.785>for <00:26:22.940>our <00:26:23.096>platform <00:26:23.251>and <00:26:23.407>we <00:26:23.562>would <00:26:23.718>like, <00:26:23.873>uh, <00:26:24.029>to <00:26:24.185>synchronize,

376
00:26:28.185 --> 00:26:32.025
<00:26:28.185>synchronize <00:26:28.360>and <00:26:28.534>connect, <00:26:28.710>uh, <00:26:28.885>charge <00:26:29.060>GBT <00:26:29.235>with <00:26:29.409>our <00:26:29.585>product.

377
00:26:32.885 --> 00:26:36.865
<00:26:32.885>So <00:26:33.025>in <00:26:33.165>case <00:26:33.305>you <00:26:33.445>would <00:26:33.585>like <00:26:33.725>to <00:26:33.865>create <00:26:34.004>a, <00:26:34.145>a <00:26:34.285>note

378
00:26:37.005 --> 00:26:38.385
<00:26:37.005>or <00:26:37.419>create <00:26:37.833>a <00:26:38.247>flashcard

379
00:26:38.525 --> 00:26:40.825
<00:26:38.525>or <00:26:38.700>asking <00:26:38.875>question, <00:26:39.050>you <00:26:39.225>would <00:26:39.400>like <00:26:39.575>to <00:26:39.750>save <00:26:39.925>it

380
00:26:41.285 --> 00:26:45.845
<00:26:41.285>and, <00:26:41.425>uh, <00:26:41.565>a <00:26:41.705>new <00:26:41.845>application, <00:26:41.985>you <00:26:42.125>could <00:26:42.265>ask <00:26:42.405>SHA <00:26:42.545>GBT <00:26:42.685>to,

381
00:26:46.705 --> 00:26:50.285
<00:26:46.705>uh, <00:26:46.905>to <00:26:47.105>send <00:26:47.304>this <00:26:47.504>data <00:26:47.705>into <00:26:47.905>your <00:26:48.105>application

382
00:26:50.665 --> 00:26:53.765
<00:26:50.665>and <00:26:50.805>all, <00:26:50.945>all <00:26:51.085>what <00:26:51.225>you <00:26:51.365>it'll <00:26:51.504>doing, <00:26:51.645>it <00:26:51.784>will <00:26:51.925>trigger <00:26:52.065>action.

383
00:26:54.595 --> 00:26:56.445
<00:26:54.595>This <00:26:55.061>action <00:26:55.528>will <00:26:55.995>communicate

384
00:26:56.445 --> 00:27:00.125
<00:26:56.445>with <00:26:56.725>the <00:26:57.004>backend <00:26:57.284>and <00:26:57.564>the <00:26:57.845>back.

385
00:27:00.225 --> 00:27:03.445
<00:27:00.225>Uh, <00:27:00.380>on <00:27:00.536>the <00:27:00.691>backend. <00:27:00.847>We <00:27:01.002>receive <00:27:01.158>the <00:27:01.313>content <00:27:01.469>from <00:27:01.625>GBT.

386
00:27:05.265 --> 00:27:06.585
<00:27:05.265>GBT <00:27:05.562>will <00:27:05.859>check <00:27:06.156>the <00:27:06.453>content

387
00:27:06.725 --> 00:27:11.355
<00:27:06.725>and <00:27:06.899>also <00:27:07.074>save <00:27:07.250>it <00:27:07.425>in <00:27:07.600>database, <00:27:07.774>the <00:27:07.949>cloud <00:27:08.125>database

388
00:27:11.735 --> 00:27:13.355
<00:27:11.735>or <00:27:12.014>the <00:27:12.294>database <00:27:12.574>that <00:27:12.854>we <00:27:13.135>have.

389
00:27:13.815 --> 00:27:18.035
<00:27:13.815>And <00:27:13.942>after <00:27:14.069>that, <00:27:14.196>it'll <00:27:14.324>push <00:27:14.451>this <00:27:14.578>data <00:27:14.705>in <00:27:14.833>a <00:27:14.960>real <00:27:15.087>time <00:27:15.215>way

390
00:27:18.815 --> 00:27:23.635
<00:27:18.815>to <00:27:18.990>the, <00:27:19.165>either <00:27:19.340>your <00:27:19.515>browser <00:27:19.690>extension <00:27:19.865>or <00:27:20.040>mobile <00:27:20.215>application

391
00:27:23.655 --> 00:27:24.795
<00:27:23.655>or <00:27:23.997>this <00:27:24.339>desktop <00:27:24.681>application.

392
00:27:24.975 --> 00:27:27.715
<00:27:24.975>You <00:27:25.149>could <00:27:25.324>push <00:27:25.500>this <00:27:25.675>data <00:27:25.850>for <00:27:26.024>three <00:27:26.199>of <00:27:26.375>them.

393
00:27:28.375 --> 00:27:30.715
<00:27:28.375>So <00:27:28.608>if <00:27:28.841>you <00:27:29.075>having <00:27:29.308>a <00:27:29.541>mobile <00:27:29.775>application

394
00:27:30.715 --> 00:27:34.675
<00:27:30.715>and <00:27:30.870>using <00:27:31.026>charge <00:27:31.181>GBT, <00:27:31.337>you <00:27:31.492>could <00:27:31.648>save, <00:27:31.803>uh, <00:27:31.959>a <00:27:32.115>data

395
00:27:35.095 --> 00:27:38.235
<00:27:35.095>and <00:27:35.250>if <00:27:35.406>you <00:27:35.561>want <00:27:35.717>to <00:27:35.872>your <00:27:36.028>laptop, <00:27:36.183>you <00:27:36.339>could <00:27:36.495>see

396
00:27:38.975 --> 00:27:41.355
<00:27:38.975>in <00:27:39.175>the <00:27:39.375>browser <00:27:39.574>extension <00:27:39.774>it <00:27:39.975>receives <00:27:40.175>the <00:27:40.375>data

397
00:27:42.055 --> 00:27:44.275
<00:27:42.055>or <00:27:42.230>the <00:27:42.405>desktop <00:27:42.580>application <00:27:42.755>receives <00:27:42.930>the <00:27:43.105>data <00:27:43.280>as <00:27:43.455>well.

398
00:27:46.605 --> 00:27:47.825
<00:27:46.605>And <00:27:46.971>that's, <00:27:47.337>that's <00:27:47.703>why

399
00:27:47.825 --> 00:27:51.025
<00:27:47.825>because <00:27:48.000>they <00:27:48.175>are <00:27:48.350>connecting <00:27:48.525>to <00:27:48.700>Evan <00:27:48.875>source, <00:27:49.050>to <00:27:49.225>the,

400
00:27:51.205 --> 00:27:52.425
<00:27:51.205>to <00:27:51.571>backend <00:27:51.937>end <00:27:52.303>point.

401
00:27:52.805 --> 00:27:55.705
<00:27:52.805>And <00:27:52.945>once, <00:27:53.085>once <00:27:53.225>they <00:27:53.365>receive <00:27:53.505>the <00:27:53.645>data <00:27:53.785>from <00:27:53.925>the <00:27:54.065>back <00:27:54.205>end,

402
00:27:56.445 --> 00:27:59.785
<00:27:56.445>you <00:27:56.620>could <00:27:56.794>save <00:27:56.970>it <00:27:57.145>or <00:27:57.320>display <00:27:57.495>in <00:27:57.669>notification <00:27:57.845>way

403
00:28:00.605 --> 00:28:03.065
<00:28:00.605>or, <00:28:00.805>uh, <00:28:01.005>store <00:28:01.205>it <00:28:01.405>in <00:28:01.605>the <00:28:01.805>local <00:28:02.005>storage.

404
00:28:04.565 --> 00:28:06.385
<00:28:04.565>And <00:28:04.798>if <00:28:05.031>it <00:28:05.265>didn't <00:28:05.498>receive <00:28:05.731>it <00:28:05.965>then

405
00:28:06.685 --> 00:28:10.105
<00:28:06.685>or <00:28:06.825>use <00:28:06.965>offline, <00:28:07.105>then <00:28:07.245>the <00:28:07.385>next <00:28:07.524>time <00:28:07.665>you <00:28:07.804>win <00:28:07.945>the <00:28:08.085>uh,

406
00:28:10.625 --> 00:28:12.465
<00:28:10.625>application <00:28:10.905>or <00:28:11.185>mobile <00:28:11.465>application <00:28:11.745>will <00:28:12.025>feature

407
00:28:13.005 --> 00:28:16.065
<00:28:13.005>the <00:28:13.180>new <00:28:13.355>data <00:28:13.530>from <00:28:13.705>the <00:28:13.880>cloud, <00:28:14.055>from <00:28:14.230>the <00:28:14.405>database.

408
00:28:17.835 --> 00:28:22.175
<00:28:17.835>So <00:28:17.975>this <00:28:18.115>was <00:28:18.255>just <00:28:18.395>an <00:28:18.535>example <00:28:18.675>about <00:28:18.815>how <00:28:18.955>we <00:28:19.095>could, <00:28:19.235>uh,

409
00:28:22.575 --> 00:28:25.055
<00:28:22.575>communicate <00:28:22.808>and <00:28:23.041>push <00:28:23.275>data <00:28:23.508>from <00:28:23.741>different <00:28:23.975>providers

410
00:28:30.535 --> 00:28:32.995
<00:28:30.535>and, <00:28:31.001>uh, <00:28:31.468>for <00:28:31.935>limitations

411
00:28:33.975 --> 00:28:37.835
<00:28:33.975>and <00:28:34.091>when <00:28:34.208>to <00:28:34.324>use <00:28:34.441>it, <00:28:34.558>just <00:28:34.675>use <00:28:34.791>a <00:28:34.908>protocol <00:28:35.024>in <00:28:35.141>the <00:28:35.258>right <00:28:35.375>way.

412
00:28:38.095 --> 00:28:40.035
<00:28:38.095>As <00:28:38.295>we <00:28:38.495>said, <00:28:38.695>it's <00:28:38.895>one <00:28:39.095>way <00:28:39.295>for <00:28:39.495>pushing.

413
00:28:41.255 --> 00:28:46.015
<00:28:41.255>And, <00:28:41.535>uh, <00:28:41.815>if <00:28:42.095>you <00:28:42.375>want, <00:28:42.655>uh,

414
00:28:48.275 --> 00:28:50.335
<00:28:48.275>if <00:28:48.475>you, <00:28:48.675>if <00:28:48.875>you <00:28:49.075>will <00:28:49.275>want <00:28:49.475>to, <00:28:49.675>uh,

415
00:28:52.635 --> 00:28:55.055
<00:28:52.635>to <00:28:52.868>use <00:28:53.101>video, <00:28:53.335>we <00:28:53.568>have <00:28:53.801>web <00:28:54.035>RTC

416
00:28:55.055 --> 00:28:58.295
<00:28:55.055>or <00:28:55.230>if <00:28:55.405>you <00:28:55.580>would <00:28:55.755>like <00:28:55.930>to <00:28:56.105>communicate <00:28:56.280>between <00:28:56.455>service,

417
00:28:58.755 --> 00:29:00.495
<00:28:58.755>we <00:28:59.221>could <00:28:59.688>use <00:29:00.155>GRBC.

418
00:29:00.905 --> 00:29:02.295
<00:29:00.905>Could, <00:29:01.155>this <00:29:01.405>could <00:29:01.655>be <00:29:01.905>from <00:29:02.156>microservice,

419
00:29:02.435 --> 00:29:05.215
<00:29:02.435>but <00:29:02.610>if <00:29:02.784>you <00:29:02.960>would <00:29:03.135>like <00:29:03.310>to <00:29:03.485>push <00:29:03.659>data <00:29:03.835>only

420
00:29:05.355 --> 00:29:07.455
<00:29:05.355>and <00:29:05.635>not <00:29:05.915>receiving <00:29:06.195>like <00:29:06.475>a <00:29:06.755>notification

421
00:29:07.475 --> 00:29:09.375
<00:29:07.475>or <00:29:07.649>sending <00:29:07.824>data <00:29:08.000>from <00:29:08.175>the <00:29:08.350>backend <00:29:08.524>to <00:29:08.699>a <00:29:08.875>client

422
00:29:09.995 --> 00:29:12.815
<00:29:09.995>or <00:29:10.228>sending <00:29:10.461>a <00:29:10.695>notification, <00:29:10.928>the <00:29:11.161>server <00:29:11.395>side,

423
00:29:12.875 --> 00:29:16.095
<00:29:12.875>server <00:29:13.075>sent <00:29:13.275>events <00:29:13.475>is, <00:29:13.675>uh, <00:29:13.875>the <00:29:14.075>best <00:29:14.275>way

424
00:29:16.255 --> 00:29:17.495
<00:29:16.255>for <00:29:16.627>memory <00:29:16.999>and <00:29:17.370>resources.

425
00:29:29.315 --> 00:29:32.575
<00:29:29.315>And <00:29:29.455>when, <00:29:29.595>when <00:29:29.735>we <00:29:29.875>stream <00:29:30.015>it <00:29:30.155>just <00:29:30.295>we <00:29:30.435>have <00:29:30.575>less <00:29:30.715>latency,

426
00:29:32.685 --> 00:29:34.975
<00:29:32.685>more <00:29:32.965>trust, <00:29:33.245>we <00:29:33.524>have <00:29:33.804>better <00:29:34.085>attention.

427
00:29:35.515 --> 00:29:38.015
<00:29:35.515>We <00:29:35.865>have <00:29:36.215>real <00:29:36.565>time <00:29:36.915>interactive

428
00:29:39.315 --> 00:29:41.735
<00:29:39.315>and <00:29:39.515>we <00:29:39.715>have <00:29:39.915>also <00:29:40.115>a, <00:29:40.315>like <00:29:40.515>dynamic <00:29:40.715>UIUX.

429
00:29:46.865 --> 00:29:49.755
<00:29:46.865>Yeah, <00:29:47.040>thanks. <00:29:47.215>And, <00:29:47.390>uh, <00:29:47.565>maybe <00:29:47.740>we <00:29:47.915>could <00:29:48.090>take <00:29:48.265>questions.