ºÝºÝߣ
Submit Search
Presentation @ Node.js Global Summit 2020 - Online
?
0 likes
?
399 views
Alessandro Polidori
Speaking about REST API performance improvements with Node.js Fastify Framework
Read less
Read more
1 of 57
Download now
Download to read offline
More Related Content
Presentation @ Node.js Global Summit 2020 - Online
1.
A world of
Rest APIs¡ from Restify to a faster Fastify ALESSANDRO POLIDORI Senior Software Engineer ale_polidori Node.js Global Summit 2020
2.
2009 2020
3.
Debug in PRODUCTION
?
4.
Photo by Matteo
°ä²¹±è±è¨¨
5.
Debug in PRODUCTION
?
7.
NethCTI Backend REST
API
8.
M I G
R A T I O N
9.
Internet (PSTN) server REST /
WS REST / WS REST / WS REST / WS PBX 1 2 3
10.
Internet (PSTN) server REST /
WS REST / WS REST / WS REST / WS PBX 1 2 Event: BridgeEnter Privilege: call,all BridgeUniqueid: c2c967b6-9044 BridgeType: basic BridgeTechnology: simple_bridge BridgeCreator: <unknown> BridgeName: <unknown> BridgeNumChannels: 1 BridgeVideoSourceMode: none Channel: PJSIP/Nethesis-00000123 ChannelState: 6 ChannelStateDesc: Up CallerIDNum: 3401234567 CallerIDName: 3401234567 ConnectedLineNum: 072112345 ConnectedLineName: <unknown> Language: it AccountCode: 223 Context: from-pstn Exten: Priority: 1 Uniqueid: 1590499030.97474 Linkedid: 1590499029.97472 { "connected": true, "counterpartName": "3401234567", "counterpartNum": "3401234567", "direction": "out", "duration": 19, "id": "PJSIP/91223-00000", "inConference": false, "linkedId": "1590499772.97717", "owner": "91223", "recording": "false", "startTime": 1590499772000, "throughQueue": false } 3
11.
Internet (PSTN) REST /
WS REST / WS REST / WS REST / WS PBX 1 3 Asterisk-Proxy Database Con?g Phonebook CustomerCard Exec-Script User Call History REST Phonebook REST CustCard REST History RESTAstProxy WebSocket
12.
Internet (PSTN) REST /
WS REST / WS REST / WS REST / WS PBX 1 3
13.
Internet (PSTN) REST /
WS REST / WS REST / WS REST / WS PBX 1 3
14.
Unresponsive Client 100% CPU
15.
Debug in PRODUCTION
? How To Reproduce
16.
Internet (PSTN) S I P e s
s i o n n i t i a t i o n r o t o c o l
18.
#sipp -sf register_invite_client.xml -inf
register_invite_client.csv 192.168.5.80 -m 100 -d 10000 -r 10
19.
FlameGraph
20.
FlameGraph 1. capture the
stacks 2. fold the stack 3. create svg image
23.
0x 1. installation: npm
install -g 0x 2. exec: 0x my-server.js 3. image creation: SIGINT
24.
npm i autocannon
-g
25.
HTTP Pipelining https://en.wikipedia.org/wiki/HTTP_pipelining
28.
REST Phonebook REST CustCard REST
History RESTAstProxy WebSocket Node http-proxy{ REST-API }
29.
M I G
R A T I O N
30.
var?restify?=?require('restify'); var?plugins?=?require('jsplugs')().require('./plugins/com_astproxy_rest/plugins_rest'); for?(p?in?plugins)?{ get?=?plugins[p].api.get; root?=?plugins[p].api.root; ?post?=?plugins[p].api.post; ? del?=?plugins[p].api.del; ??//?add?routing?functions ??for?(k?in?get)?{ ????server.get('/'?+?root?+?'/'?+?get[k],?execute); ??} ??// post... } server.listen(port,?address,?function()?{ ??logger.log.info(IDLOG,?server.name?+?'?listening?at?'?+?server.url); }); T
h e O l d C o d e
31.
var?restify?=?require('restify'); var?plugins?=?require('jsplugs')().require('./plugins/com_astproxy_rest/plugins_rest'); for?(p?in?plugins)?{ get?=?plugins[p].api.get; root?=?plugins[p].api.root; ?post?=?plugins[p].api.post; ? del?=?plugins[p].api.del; ??//?add?routing?functions ??for?(k?in?get)?{ ????server.get('/'?+?root?+?'/'?+?get[k],?execute); ??} ??// post } server.listen(port,?address,?function()?{ ??logger.log.info(IDLOG,?server.name?+?'?listening?at?'?+?server.url); }); T
h e O l d C o d e
32.
var?fastify?=?require('fastify')({?logger:?false?}); var?plugins?=?require(¡®jsplugs')().require('./plugins/com_astproxy_rest/plugins_rest'); for?(p?in?plugins)?{ get?=?plugins[p].api.get; ??//?add?routing?functions ??for?(k?in?get)?{ ????fastify.get('/'?+?root?+?'/'?+?get[k],?plugins[p][get[k]?+?'_schema'],?execute); ??} } fastify.listen(port,?address,?function?(err,?address)?{ ??if?(err)?{ ????fastify.log.error(err) ????process.exit(1) ??} ??fastify.log.info(`fastify?server?listening?on?${address}`) }); T h e
N e w C o d e
33.
var?fastify?=?require('fastify')({?logger:?false?}); var?plugins?=?require(¡®jsplugs')().require('./plugins/com_astproxy_rest/plugins_rest'); for?(p?in?plugins)?{ get?=?plugins[p].api.get; ??//?add?routing?functions ??for?(k?in?get)?{ ????fastify.get('/'?+?root?+?'/'?+?get[k],?plugins[p][get[k]?+?'_schema'],?execute); ??} } fastify.listen(port,?address,?function?(err,?address)?{ ??if?(err)?{ ????fastify.log.error(err) ????process.exit(1) ??} ??fastify.log.info(`fastify?server?listening?on?${address}`) }); T h e
N e w C o d e
34.
var?fastify?=?require('fastify')({?logger:?false?}); var?plugins?=?require(¡®jsplugs')().require('./plugins/com_astproxy_rest/plugins_rest'); for?(p?in?plugins)?{ get?=?plugins[p].api.get; ??//?add?routing?functions ??for?(k?in?get)?{ ????fastify.get('/'?+?root?+?'/'?+?get[k],?plugins[p][get[k]?+?'_schema'],?execute); ??} } fastify.listen(port,?address,?function?(err,?address)?{ ??if?(err)?{ ????fastify.log.error(err) ????process.exit(1) ??} ??fastify.log.info(`fastify?server?listening?on?${address}`) }); T h e
N e w C o d e
35.
M I G
R A T I O N HTTP GET astproxy/extensions
36.
Test Scenario 1 Virtual
Machine on MBP 2,7 GHz Intel Core i5 ? 1 CPU ? 1 GB RAM ? 10 Phone Extensions
37.
$ autocannon -c 100 -d
10 -l https://$IP/astproxy/extensions #?concurrent connections 10 secs: test duration print latency
38.
Running 10s test
@ https://192.168.11.22/webrest/astproxy/extensions 100 connections ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ 99% ©¦ Avg ©¦ Stdev ©¦ Max ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Latency ©¦ 158 ms ©¦ 226 ms ©¦ 1490 ms ©¦ 1671 ms ©¦ 270.33 ms ©¦ 233.65 ms ©¦ 1748.84 ms ©¦ ©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¼ ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 1% ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ Avg ©¦ Stdev ©¦ Min ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Req/Sec ©¦ 0 ©¦ 0 ©¦ 414 ©¦ 511 ©¦ 366.5 ©¦ 145.5 ©¦ 204 ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È Restify performance
39.
Running 10s test
@ https://192.168.11.22/webrest/astproxy/extensions 100 connections ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ 99% ©¦ Avg ©¦ Stdev ©¦ Max ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Latency ©¦ 128 ms ©¦ 169 ms ©¦ 540 ms ©¦ 1544 ms ©¦ 212.24 ms ©¦ 197.89 ms ©¦ 1778.33 ms ©¦ ©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¼ ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 1% ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ Avg ©¦ Stdev ©¦ Min ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Req/Sec ©¦ 0 ©¦ 0 ©¦ 524 ©¦ 658 ©¦ 468.4 ©¦ 204.98 ©¦ 153 ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È Fastify performance
40.
I m p
r o v e A G A I N ? Is it possible ?
41.
fastify-http-proxy github.com/fastify/fastify-http-proxy
42.
REST Phonebook REST CustCard REST
History RESTAstProxy WebSocket { REST-API } Node http-proxy
43.
Running 10s test
@ https://192.168.11.22/webrest/astproxy/extensions 100 connections ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ 99% ©¦ Avg ©¦ Stdev ©¦ Max ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Latency ©¦ 82 ms ©¦ 121 ms ©¦ 218 ms ©¦ 1363 ms ©¦ 143.46 ms ©¦ 153.47 ms ©¦ 1530.87 ms ©¦ ©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¼ ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 1% ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ Avg ©¦ Stdev ©¦ Min ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Req/Sec ©¦ 0 ©¦ 0 ©¦ 776 ©¦ 906 ©¦ 692.2 ©¦ 259.05 ©¦ 468 ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©¤©È Fastify with HTTP-PROXY
44.
const?Fastify?=?require('fastify'); const?serverF?=?Fastify({?logger:?false?}); const?proxyF?=?require(¡®fastify-http-proxy'); serverF.register(proxyF,?{ upstream:?http://myserver, ??prefix:?¡®/astproxy¡¯, ??preHandler:?function?(req,?res,?done)?{ ??if?(!req.headers.authorization)?{ // do ahutentication } } } serverF.listen(port,?address,?(err,?address)?=>?{
... }); f a s t i f y - h t t p - p r o x y
45.
0 175 350 525 700 Restify Fastify Rest
Fastify Proxy + Rest +48% +22% Req/sec Autocannon results
46.
I want a R
E A L S C E N A R I O ! ! !
47.
Test Scenario 2
48.
Test Scenario 2 ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦
Stat ©¦ 1% ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ Avg ©¦ Stdev ©¦ Min ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Req/Sec ©¦ 51 ©¦ 51 ©¦ 180 ©¦ 239 ©¦ 164.65 ©¦ 57.3 ©¦ 51 ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Bytes/Sec ©¦ 165 kB ©¦ 165 kB ©¦ 582 kB ©¦ 773 kB ©¦ 532 kB ©¦ 185 kB ©¦ 165 kB ©¦ ©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¼ ©°©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©Ð©¤©¤©¤©¤©¤©¤©¤©¤©´ ©¦ Stat ©¦ 1% ©¦ 2.5% ©¦ 50% ©¦ 97.5% ©¦ Avg ©¦ Stdev ©¦ Min ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Req/Sec ©¦ 0 ©¦ 0 ©¦ 236 ©¦ 285 ©¦ 213.6 ©¦ 70.19 ©¦ 45 ©¦ ©À©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©à©¤©¤©¤©¤©¤©¤©¤©¤©È ©¦ Bytes/Sec ©¦ 0 B ©¦ 0 B ©¦ 772 kB ©¦ 932 kB ©¦ 698 kB ©¦ 229 kB ©¦ 147 kB ©¦ ©¸©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©Ø©¤©¤©¤©¤©¤©¤©¤©¤©¼ +33% restify Fastify
49.
Something about Fastify
50.
Fastify story
51.
Fastify story
52.
Rest API
53.
Plugin
54.
Features Plugins
55.
? https://github.com/fastify/help ? https://gitter.im/fastify ?
Stack Over?ow Help
56.
www.fastify.io
57.
ALESSANDRO POLIDORI Senior Software
Engineer ale_polidori alessandropolidori alepolidori
Download