{"id":489764,"date":"2026-08-04T20:42:39","date_gmt":"2026-08-04T20:42:39","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=489764"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=489764","title":{"rendered":"\u042f \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b 40 \u043a\u0440\u0438\u043f\u0442\u043e\u0431\u0438\u0440\u0436 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438. \u0412\u043e\u0442 \u043e \u0447\u0451\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><strong>\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0438\u0440\u0436\u0443 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438: latency, matching engine \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/strong><\/p>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u042f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435\u0439 \u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0433\u043d\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0431\u0438\u0440\u0436.<\/p>\n<p>\u042f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b \u0431\u0438\u0440\u0436\u0438 \u043a \u0441\u0432\u043e\u0438\u043c \u0431\u043e\u0442\u0430\u043c, \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u043b \u0447\u0435\u0440\u0435\u0437 API \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0442\u043e, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0442\u0440\u0435\u0439\u0434\u0435\u0440\u0443: \u0441\u0442\u0430\u043a\u0430\u043d\u044b, latency, WebSocket, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0440\u0434\u0435\u0440\u043e\u0432, \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u044b\u043d\u043a\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0434\u0435\u043b\u043a\u0438.<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044f \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u043a\u043e\u043b\u043e <strong>40 \u0431\u0438\u0440\u0436<\/strong>.<\/p>\n<p>\u0418 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0431\u0438\u0440\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043d\u0430 CoinMarketCap, \u0432 \u0440\u0435\u043a\u043b\u0430\u043c\u0435 \u043e\u0431\u0435\u0449\u0430\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u044b \u043e\u0431\u044a\u0435\u043c\u0430 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0441\u0442\u0430\u043a\u0430\u043d, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0431\u0438\u0440\u0436\u0435\u0439 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u0441\u0451 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<h4>\u041e \u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442<\/h4>\n<p>\u042f \u043d\u0435 \u0445\u043e\u0447\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u043a\u0430\u043d\u0430\u043b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 PnL, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u00ab\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u00bb \u0438 \u043f\u0440\u043e\u0434\u0430\u0435\u0442 \u043a\u0443\u0440\u0441 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d.<\/p>\n<p>\u0418 \u044f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 edge, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0443-\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u0432\u0440\u0435\u043c\u044f, \u0430 \u043a\u043e\u043c\u0443-\u0442\u043e \u0434\u0435\u043d\u044c\u0433\u0438<\/p>\n<h3>\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0438\u0440\u0436\u0438 \u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0431\u043e\u0442\u044b<\/h3>\n<h3>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043c\u043e\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b51\/0a4\/d1e\/b510a4d1e1db908568893d3fee36bf1d.png\" width=\"1307\" height=\"1203\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b51\/0a4\/d1e\/b510a4d1e1db908568893d3fee36bf1d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b51\/0a4\/d1e\/b510a4d1e1db908568893d3fee36bf1d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>Real-time market data (Rust) \u2192 Redis \u2192 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u2192 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \/ \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/strong><\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043a\u043e\u043d\u0442\u0443\u0440 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0438\u0440\u0436\u0430: \u043e\u0442 \u0441\u0442\u0430\u043a\u0430\u043d\u0430 \u0434\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0442\u044c API \u0431\u0438\u0440\u0436\u0438. \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u0432\u0430\u0448\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u044f\u0432\u043a\u0438.<\/p>\n<p>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e \u0432\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p><strong>\u0411\u0438\u0440\u0436\u0430 \u2192 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0432\u0430\u0448 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2192 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u044f\u0432\u043a\u0438 \u2192 matching engine \u0431\u0438\u0440\u0436\u0438 \u2192 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/strong><\/p>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043e \u0441\u0430\u043c\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c, \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u0435\u0442\u0440\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0438\u0448\u0443 \u0432\u0441\u0435 \u0447\u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u043e \u0434\u0430\u043b\u0435\u0435 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0432 \u043f\u043b\u0430\u043d\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0431\u0438\u0440\u0436\u0438, \u0442.\u043a. \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432 \u0446\u0435\u043b\u043e\u043c  \u0440\u0435\u0448\u0430\u0435\u043c\u043e<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u0413\u0440\u0443\u043f\u043f\u0430<\/p>\n<\/th>\n<th>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/th>\n<th>\n<p>\u0427\u0442\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442<\/p>\n<\/th>\n<th>\n<p>\u0413\u0434\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p>\u041a\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442<\/p>\n<\/th>\n<th>\n<p>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u0430\u0436\u043d\u0430<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>0. E2E \u2014 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0443\u0440<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Market Event \u2192 Order in Book<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0432\u043e\u0435\u0439 \u0437\u0430\u044f\u0432\u043a\u0438 \u0432 \u043a\u043d\u0438\u0433\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Market Event \u2192 Fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0440\u044b\u043d\u043a\u0430 \u0434\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0440\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Market Event \u2192 Ack<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430\u044f\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">E2E p50 \/ p95 \/ p99<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0425\u0432\u043e\u0441\u0442\u044b \u0447\u0430\u0441\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0435 \u043c\u0435\u0434\u0438\u0430\u043d\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">E2E jitter<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>1. Market Data \u2014 \u0431\u0438\u0440\u0436\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Book generation latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u044b\u043d\u043a\u0430 \u2192 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 book state<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market Data Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Snapshot generation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f snapshot<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market Data Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Delta generation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f delta update<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market Data Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Book publish latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Book state \u2192 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market Data Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0432\u0435\u0436\u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Update frequency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439\/sec<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u00ab\u0434\u044b\u0445\u0430\u043d\u0438\u044f\u00bb \u0440\u044b\u043d\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Sequence continuity<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 sequence<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043d\u0438\u0433\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Data timestamp accuracy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e timestamp \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0447\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e age<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Quote persistence<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0443\u0440\u043e\u0432\u043d\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Order book<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 \/ MM<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Order book age<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS \u2192 \u0442\u0432\u043e\u0439 collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 stale data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>2. Network \u2014 \u0431\u0438\u0440\u0436\u0430 \u2194 \u0441\u0435\u0440\u0432\u0435\u0440<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Endpoint latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0435\u0440\u0432\u0435\u0440 \u2192 endpoint \u0431\u0438\u0440\u0436\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Application latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 WS\/API \u2192 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">App layer<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra + \u0431\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0430\u0436\u043d\u0435\u0435 ping<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Jitter<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u0431\u0440\u043e\u0441 network latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Packet loss<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra \/ \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Packet reorder<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Retransmission<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0445\u0432\u043e\u0441\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Connection stability<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u0440\u044b\u0432\u044b WS\/TCP<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra + \u0431\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Reconnect time<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Client<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Recovery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>3. Rust WS \/ Data Ingest<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Socket \u2192 process<\/p>\n<\/td>\n<td>\n<p align=\"left\">NIC \u2192 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Parse latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Message \u2192 internal struct<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c parser<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Normalize latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Raw \u2192 unified format<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Book update latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Receive \u2192 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 L2 book<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queueing delay<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust \/ OS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 bottleneck<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">CPU scheduling delay<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 CPU<\/p>\n<\/td>\n<td>\n<p align=\"left\">OS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Tail latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Drop rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS worker<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Redis write latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector \u2192 Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust\/Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>WS \u2192 Redis ready<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0438\u0440\u0436\u0438 \u2192 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u043a\u043d\u0438\u0433\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>4. Redis \/ Real-time layer<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Read latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis \u2192 strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Write latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector \u2192 Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Pub\/Sub latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Event \u2192 subscriber<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queue depth<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Key freshness<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Memory usage<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 RAM<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Evictions<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0438\u0441\u043a \u043f\u043e\u0442\u0435\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Contention<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u044f \u0437\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Tail latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>5. Analytics \/ Feature Engine<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Redis \u2192 processing<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u043d\u0430\u0447\u0430\u043b\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Feature calculation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Spread calculation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0447\u0435\u0442 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Liquidity calculation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0447\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Funding calculation<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0447\u0435\u0442 funding edge<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">Funding strategies<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Market freshness<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 stale signal<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Decision Age<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>6. Strategy \/ Decision<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Signal generation latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Features \u2192 signal<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Decision latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 CPU budget<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Risk-check latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Signal \u2192 risk decision<\/p>\n<\/td>\n<td>\n<p align=\"left\">Risk<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Position check latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">Risk\/DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0449\u0438\u0442\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Opportunity lifetime<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0438\u0432\u0435\u0442 edge<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 E2E<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Signal decay<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 edge<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Research<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>7. Order Construction \/ Execution<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Order construction<\/p>\n<\/td>\n<td>\n<p align=\"left\">Signal \u2192 \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u044f\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Serialization<\/p>\n<\/td>\n<td>\n<p align=\"left\">Object \u2192 payload<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">CPU overhead<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Signing latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">CPU overhead<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queueing delay<\/p>\n<\/td>\n<td>\n<p align=\"left\">Decision \u2192 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u044b\u0442\u0430\u044f latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Decision \u2192 Wire<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2192 \u043f\u0430\u043a\u0435\u0442 \u0443\u0448\u0435\u043b \u0432 \u0441\u0435\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Cancel latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2192 cancel \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0434\u0435\u0440\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Retry latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0448\u0438\u0431\u043a\u0430 \u2192 \u043f\u043e\u0432\u0442\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u0439 \u043a\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">Recovery<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>8. Outbound Network<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Client \u2192 endpoint<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0435\u0440\u0432\u0435\u0440 \u2192 API gateway<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">TLS overhead<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\/\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 TLS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra + client<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">TCP connect latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 hot path<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Connection reuse<\/p>\n<\/td>\n<td>\n<p align=\"left\">Persistent connection<\/p>\n<\/td>\n<td>\n<p align=\"left\">Client<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043d\u0438\u0436\u0435\u043d\u0438\u0435 latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Retransmission<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0432\u0442\u043e\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Network<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Tail latency<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>9. Exchange Gateway<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Gateway \u2192 Matching Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">API gateway \u2192 matching<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 bottleneck<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Order validation latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Exchange risk-check latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Margin\/risk<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Matching latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Order \u2192 matching decision<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Matching Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queue-entry latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Matching \u2192 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043a\u043d\u0438\u0433\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Matching Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u0435\u043d \u0434\u043b\u044f limit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Ack latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Request \u2192 acknowledgment<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + network<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Reject latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Request \u2192 reject<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>10. Order Book \/ Limit Execution<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Time-to-Book<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Send \u2192 \u0437\u0430\u044f\u0432\u043a\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u043a\u043d\u0438\u0433\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043b\u0438\u043c\u0438\u0442\u043d\u0430\u044f KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queue position<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430\u044f\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Matching Engine<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 \/ \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c fill<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Time-to-first-fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">Order \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Time-to-full-fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">Order \u2192 \u043f\u043e\u043b\u043d\u044b\u0439 fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Fill probability<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Partial fill ratio<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Cancel-to-fill ratio<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043c\u0435\u043d\u044b \/ fills<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Displayed \/ Executable Liquidity<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0438\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c vs \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u044b\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">Book + fills<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + \u0442\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Fill Ratio<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \/ \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">Fills<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043d\u0438\u0433\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Slippage<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f \u2192 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Adverse selection<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0435\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market data<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy \/ research<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e maker fill<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Queue decay<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0435\u0440\u0435\u0434 \u0442\u043e\u0431\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">Order book<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0435\u043b\u044c fill<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>11. Data Quality<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Message loss<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f market-data \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Duplicate rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e feed<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Out-of-order rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043d\u0438\u0433\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Stale rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0438\u0433\u043d\u0430\u043b\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Book reconstruction errors<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f L2<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Snapshot\/delta mismatch<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0435\u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c snapshot \u0438 delta<\/p>\n<\/td>\n<td>\n<p align=\"left\">Collector<\/p>\n<\/td>\n<td>\n<p align=\"left\">Rust + exchange<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0440\u0438\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>12. Infrastructure<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">CPU utilization<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 CPU<\/p>\n<\/td>\n<td>\n<p align=\"left\">Server<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Memory utilization<\/p>\n<\/td>\n<td>\n<p align=\"left\">RAM<\/p>\n<\/td>\n<td>\n<p align=\"left\">Server<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Disk I\/O<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0438\u0441\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Server<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">PostgreSQL<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Network utilization<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Server<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Process restart rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">OS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Uptime<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">SLA<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">p99 resource latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0425\u0432\u043e\u0441\u0442\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">HFT<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>13. Database \/ History<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Insert latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write \u2192 PostgreSQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Query latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">SQL query<\/p>\n<\/td>\n<td>\n<p align=\"left\">PostgreSQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Research<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Commit latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Transaction commit<\/p>\n<\/td>\n<td>\n<p align=\"left\">DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Transactional layer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">WAL latency<\/p>\n<\/td>\n<td>\n<p align=\"left\">Write-ahead log<\/p>\n<\/td>\n<td>\n<p align=\"left\">PostgreSQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Replication lag<\/p>\n<\/td>\n<td>\n<p align=\"left\">Primary \u2192 replica<\/p>\n<\/td>\n<td>\n<p align=\"left\">DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Storage growth<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u043e\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<td>\n<p align=\"left\">DB<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>14. Reliability \/ Operations<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Error rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0448\u0438\u0431\u043a\u0438 API\/WS\/execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Timeout rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0430\u0439\u043c\u0430\u0443\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">API\/WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra + exchange<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Reject rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f rejected orders<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Rate-limit hit rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0443\u043f\u043e\u0440\u0430 \u0432 \u043b\u0438\u043c\u0438\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">API<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + client<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Disconnect rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0437\u0440\u044b\u0432\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">WS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra + exchange<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market data<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Recovery time<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0431\u043e\u0439 \u2192 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Infra<\/p>\n<\/td>\n<td>\n<p align=\"left\">Resilience<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>15. Market \/ Trading Quality<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Spread<\/p>\n<\/td>\n<td>\n<p align=\"left\">Bid\/ask spread<\/p>\n<\/td>\n<td>\n<p align=\"left\">Book<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Depth<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0435\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u044f\u0445<\/p>\n<\/td>\n<td>\n<p align=\"left\">L2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Real liquidity<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">Fills + L2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0430\u043c\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Volatility<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">Risk<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Funding<\/p>\n<\/td>\n<td>\n<p align=\"left\">Funding rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">Exchange<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u044b\u043d\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">Funding arb<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Price divergence<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u0438\u0440\u0436<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Arb signal<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Opportunity frequency<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \/ sec<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">Capacity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Opportunity lifetime<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 E2E<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">Edge decay<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f edge \u0437\u0430 \u0432\u0440\u0435\u043c\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">Market<\/p>\n<\/td>\n<td>\n<p align=\"left\">Strategy<\/p>\n<\/td>\n<td>\n<p align=\"left\">HFT\/arb<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>16. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0435 KPI \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Book Age at Decision<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0434\u0438\u043d \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Decision \u2192 Wire<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2192 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u044f\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Hot path<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Exchange Ack<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u2192 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430 + \u0441\u0435\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">Execution<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Time-to-Book<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u2192 \u0437\u0430\u044f\u0432\u043a\u0430 \u0432 \u043a\u043d\u0438\u0433\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Limit execution<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Fill Ratio<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u043e \/ \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>E2E p99<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">99-\u0439 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">HFT readiness<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Opportunity-to-Fill<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0439\u0434\u0435\u043d edge \u2192 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 fill<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0430\u043c\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u0430\u044f KPI<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Missed Opportunity Rate<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0439 edge<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Execution Quality<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u2192 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">E2E<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 PnL<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Data Reliability Score<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">Data layer<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0431\u043e\u0440 \u0431\u0438\u0440\u0436\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\"><strong>Exchange Reliability Score<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0432\u043e\u0434\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0431\u0438\u0440\u0436\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0435 \u0441\u043b\u043e\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0432\u043e\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0430\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u0435\u0442\u0440\u0438\u043a &#8212; \u043e\u0442 latency \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 WebSocket \u0434\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0440\u0434\u0435\u0440\u043e\u0432, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 API \u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043a\u0430\u043d\u0430. \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u0432\u0430\u0436\u043d\u0430: \u043a\u043e\u0433\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0439\u0442\u0438, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0443\u0447\u0430\u0441\u0442\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0451 \u0432\u0442\u043e\u0440\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0435 \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043e <strong>\u0432\u044b\u0431\u043e\u0440\u0435 \u0431\u0438\u0440\u0436\u0438<\/strong>, \u044f \u0431\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0434\u0432\u0430 \u0444\u0430\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435:<\/p>\n<p><strong>1. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 matching engine.<\/strong><br \/> \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0431\u0438\u0440\u0436\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u044f\u0432\u043a\u0443 \u0441 \u043a\u043d\u0438\u0433\u043e\u0439, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p><strong>2. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0430 \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u0440\u0436\u0430.<\/strong><br \/> \u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0430\u043a\u0430\u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f $10 000, \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u0438 $10 000 \u0432\u0438\u0434\u043d\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c.<\/p>\n<p>\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 &#8212; latency \u0434\u043e endpoint, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, Redis, Python, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438, \u0442\u044e\u043d\u0438\u043d\u0433 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2014 \u043c\u043e\u0436\u043d\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c. \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0431\u0438\u0440\u0436\u0438 <strong>\u043f\u043b\u043e\u0445\u043e\u0439 matching engine \u0438\u043b\u0438 \u043d\u0435\u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/strong>, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0442\u044e\u043d\u0438\u043d\u0433 \u043d\u0430 \u0442\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u044d\u0442\u043e \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0439 \u0431\u0438\u0440\u0436\u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0437\u0432\u0443\u0447\u0438\u0442 \u043d\u0435 \u00ab\u043a\u0430\u043a\u043e\u0439 \u0443 \u043d\u0435\u0451 \u043e\u0431\u044a\u0435\u043c?\u00bb, \u0430 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430: <strong>\u043a\u0430\u043a \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u044f\u0432\u043a\u0438 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0435\u0451 \u0441\u0442\u0430\u043a\u0430\u043d\u0443.<\/strong><\/p>\n<h3>\u0422\u0435\u0441\u0442 \u043d\u043e\u0432\u043e\u0439 \u0431\u0438\u0440\u0436\u0438<\/h3>\n<p>\u042f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0431\u0438\u0440\u0436\u0443 \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430.<\/p>\n<p><strong>1. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/strong><br \/> \u0421\u0442\u0430\u0432\u043b\u044e \u043b\u0438\u043c\u0438\u0442\u043d\u0443\u044e \u0437\u0430\u044f\u0432\u043a\u0443 \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0441\u0442\u0430\u043a\u0430\u043d\u0430 \u0438 \u0438\u0437\u043c\u0435\u0440\u044f\u044e \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u044f\u0432\u043a\u0438 \u0434\u043e \u0435\u0451 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043a\u043d\u0438\u0433\u0435:<\/p>\n<blockquote>\n<p><strong>Order \u2192 Book Latency<\/strong><\/p>\n<\/blockquote>\n<p>\u0415\u0441\u043b\u0438 <code>p95 \u2264 50 \u043c\u0441<\/code>, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0438\u043b\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f &#8212; \u0431\u0438\u0440\u0436\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0431\u0440\u0430\u043a\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p><strong>2. \u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c.<\/strong><br \/> \u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0430\u0432\u043b\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u044f\u0432\u043a\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e \u043e\u0431\u044a\u0451\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0438\u0440\u0436\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0442\u0430\u043a\u0430\u043d\u0435, \u0441 \u043e\u0431\u044a\u0451\u043c\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<blockquote>\n<p><strong>Fill Ratio = Executed Volume \/ Displayed Volume<\/strong><\/p>\n<\/blockquote>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d\u044f\u044e <strong>50+ \u0437\u0430\u044f\u0432\u043e\u043a<\/strong> \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u043d\u0435\u0442\u0430\u0445 \u0438 \u0443\u0440\u043e\u0432\u043d\u044f\u0445. \u042d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043a\u043e\u043f\u0435\u0439\u043a\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0431\u0438\u0440\u0436\u0438.<\/p>\n<p>\u0418 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e <strong>\u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u0441\u0442\u0430\u043a\u0430\u043d\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/strong>. \u0414\u0430\u0436\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0435 20 \u043c\u0441 \u0434\u043e \u0431\u0438\u0440\u0436\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u0435\u0441\u043b\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043a\u043d\u0438\u0433\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0436\u0435 300 \u043c\u0441.<\/p>\n<p><strong>\u0412\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>\u041c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u043d\u043e \u043a \u0441\u0443\u0442\u0438 \u0438 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0438\u0440\u0436 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 31.07 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0420\u0424 \u0438 \u0438\u0445 \u0440\u044f\u0434 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (\u0441\u0435\u0440\u0432\u0435\u0440 \u0443 \u043c\u0435\u043d\u044f \u0432 \u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u0433\u0434\u0435-\u0442\u043e latency \u0431\u043e\u043b\u044c\u0448\u0435)<\/p>\n<p>\u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u0431\u0438\u0440\u0436\u0438 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438:<\/p>\n<ul>\n<li>\n<p><strong>RTT p50 \/ p95<\/strong> \u2014 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 round-trip \u0434\u043e endpoint;<\/p>\n<\/li>\n<li>\n<p><strong>Delta p50 \/ p95<\/strong> \u2014 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u043a\u0430\u043d\u0430;<\/p>\n<\/li>\n<li>\n<p><strong>Fill Ratio<\/strong> \u2014 \u0434\u043e\u043b\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u044f\u0432\u043e\u043a \u043d\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c;<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u0411\u0438\u0440\u0436\u0430<\/p>\n<\/th>\n<th>\n<p>RTT p50<\/p>\n<\/th>\n<th data-colwidth=\"100\" width=\"100\">\n<p>RTT p95<\/p>\n<\/th>\n<th>\n<p>Delta p50<\/p>\n<\/th>\n<th>\n<p>Delta p95<\/p>\n<\/th>\n<th data-colwidth=\"100\" width=\"100\">\n<p>Fill Ratio<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Bybit<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">9 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">16 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">9 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">61 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>92.8%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>HTX<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">149 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">371 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">42 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">84 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>82.5%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Bitget<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">78 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">190 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">38 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">78 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>78.0%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>GateIO<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">164 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">745 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">36 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">78 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>78.0%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Binance<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">77 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">81 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">42 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">127 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>92.3%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>OKX<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">160 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">380 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">32 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">86 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>71.1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>KuCoin<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">156 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">191 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">42 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">87 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>64.0%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>BloFin<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">25 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">147 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">69 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">132 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>53.0%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>MEXC<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">235 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">341 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">38 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">62 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>55.9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>Phemex<\/strong>*<\/p>\n<\/td>\n<td>\n<p align=\"left\">12 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">16 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 ms<\/p>\n<\/td>\n<td>\n<p align=\"left\">7 ms<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\"><strong>54.7%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0438\u0437\u043a\u0438\u0439 RTT \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 fill \u043d\u0435\u043b\u044c\u0437\u044f, \u043a\u0430\u043a \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435<br \/>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0431\u0438\u0440\u0436, \u043d\u043e \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043c\u043e\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f; \u044d\u0442\u043e \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0438\u0440\u0436\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445<\/p>\n<p><strong>\u0418 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 disclaimer \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0430: \u044d\u0442\u043e \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u043f\u043e\u043b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0440\u0438\u0442\u0438\u043a\u0435 \ud83d\ude42<\/strong><\/p>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u2014 \u0445\u043e\u0447\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u0430\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u044e \u0438 \u0441\u0442\u0440\u043e\u044e. \u0415\u0441\u043b\u0438 \u0442\u0435\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u0438\u0434\u0435\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p><strong>ByLab:<\/strong> <a href=\"https:\/\/t.me\/bylabdata\" rel=\"noopener noreferrer nofollow\">https:\/\/t.me\/bylabdata<\/a><\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1066726\/\">https:\/\/habr.com\/ru\/articles\/1066726\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0438\u0440\u0436\u0443 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438: latency, matching engine \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435\u042f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435\u0439 \u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0433\u043d\u0430\u043b \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0431\u0438\u0440\u0436.\u042f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b \u0431\u0438\u0440\u0436\u0438 \u043a \u0441\u0432\u043e\u0438\u043c \u0431\u043e\u0442\u0430\u043c, \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u043b \u0447\u0435\u0440\u0435\u0437 API \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0442\u043e, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0442\u0440\u0435\u0439\u0434\u0435\u0440\u0443: \u0441\u0442\u0430\u043a\u0430\u043d\u044b, latency, WebSocket, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0440\u0434\u0435\u0440\u043e\u0432, \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u044b\u043d\u043a\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0434\u0435\u043b\u043a\u0438.\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044f \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u043e\u043a\u043e\u043b\u043e 40 \u0431\u0438\u0440\u0436.\u0418 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0431\u0438\u0440\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043d\u0430 CoinMarketCap, \u0432 \u0440\u0435\u043a\u043b\u0430\u043c\u0435 \u043e\u0431\u0435\u0449\u0430\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u044b \u043e\u0431\u044a\u0435\u043c\u0430 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0441\u0442\u0430\u043a\u0430\u043d, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0431\u0438\u0440\u0436\u0435\u0439 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.\u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u0441\u0451 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.\u041e \u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u042f \u043d\u0435 \u0445\u043e\u0447\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u043a\u0430\u043d\u0430\u043b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 PnL, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u00ab\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u00bb \u0438 \u043f\u0440\u043e\u0434\u0430\u0435\u0442 \u043a\u0443\u0440\u0441 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d.\u0418 \u044f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 edge, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0443-\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u0432\u0440\u0435\u043c\u044f, \u0430 \u043a\u043e\u043c\u0443-\u0442\u043e \u0434\u0435\u043d\u044c\u0433\u0438\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0438 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0438\u0440\u0436\u0438 \u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0431\u043e\u0442\u044b\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043c\u043e\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430Real-time market data (Rust) \u2192 Redis \u2192 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u2192 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \/ \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043a\u043e\u043d\u0442\u0443\u0440 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0438\u0440\u0436\u0430: \u043e\u0442 \u0441\u0442\u0430\u043a\u0430\u043d\u0430 \u0434\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0442\u044c API \u0431\u0438\u0440\u0436\u0438. \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u0432\u0430\u0448\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u044f\u0432\u043a\u0438.\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e \u0432\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\u0411\u0438\u0440\u0436\u0430 \u2192 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0432\u0430\u0448 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2192 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u044f\u0432\u043a\u0438 \u2192 matching engine \u0431\u0438\u0440\u0436\u0438 \u2192 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043e \u0441\u0430\u043c\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c, \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u0435\u0442\u0440\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0438\u0448\u0443 \u0432\u0441\u0435 \u0447\u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u043e \u0434\u0430\u043b\u0435\u0435 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0432 \u043f\u043b\u0430\u043d\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0431\u0438\u0440\u0436\u0438, \u0442.\u043a. \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432 \u0446\u0435\u043b\u043e\u043c  \u0440\u0435\u0448\u0430\u0435\u043c\u043e\u0413\u0440\u0443\u043f\u043f\u0430\u041c\u0435\u0442\u0440\u0438\u043a\u0430\u0427\u0442\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0413\u0434\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f\u041a\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0432\u0430\u0436\u043d\u04300. E2E \u2014 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0443\u0440Market Event \u2192 Order in Book\u041e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0442\u0432\u043e\u0435\u0439 \u0437\u0430\u044f\u0432\u043a\u0438 \u0432 \u043a\u043d\u0438\u0433\u0443\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438Market Event \u2192 Fill\u041e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0440\u044b\u043d\u043a\u0430 \u0434\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0440\u044b\u043d\u043e\u043a\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043a\u0446\u0438\u0438Market Event \u2192 Ack\u041e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430\u044f\u0432\u043a\u0438\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438E2E p50 \/ p95 \/ p99\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0425\u0432\u043e\u0441\u0442\u044b \u0447\u0430\u0441\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0435 \u043c\u0435\u0434\u0438\u0430\u043d\u044bE2E jitter\u0420\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\u0412\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c1. Market Data \u2014 \u0431\u0438\u0440\u0436\u0430Book generation latency\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u044b\u043d\u043a\u0430 \u2192 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 book stateMarket Data Engine\u0411\u0438\u0440\u0436\u0430\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445Snapshot generation\u0412\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f snapshotMarket Data Engine\u0411\u0438\u0440\u0436\u0430\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044fDelta generation\u0412\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f delta updateMarket Data Engine\u0411\u0438\u0440\u0436\u0430\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439Book publish latencyBook state \u2192 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f WSMarket Data Engine\u0411\u0438\u0440\u0436\u0430\u0421\u0432\u0435\u0436\u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445Update frequency\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439\/secWS\u0411\u0438\u0440\u0436\u0430\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u00ab\u0434\u044b\u0445\u0430\u043d\u0438\u044f\u00bb \u0440\u044b\u043d\u043a\u0430Sequence continuity\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 sequenceWS\u0411\u0438\u0440\u0436\u0430 + collector\u0426\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043d\u0438\u0433\u0438Data timestamp accuracy\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e timestamp \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044eWS\u0411\u0438\u0440\u0436\u0430\u0420\u0430\u0441\u0447\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e ageQuote persistence\u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0443\u0440\u043e\u0432\u043d\u044fOrder book\u0411\u0438\u0440\u0436\u0430 \/ MM\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438Order book age\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438WS \u2192 \u0442\u0432\u043e\u0439 collector\u0422\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 stale data2. Network \u2014 \u0431\u0438\u0440\u0436\u0430 \u2194 \u0441\u0435\u0440\u0432\u0435\u0440Endpoint latency\u0421\u0435\u0440\u0432\u0435\u0440 \u2192 endpoint \u0431\u0438\u0440\u0436\u0438NetworkInfra\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430Application latency\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 WS\/API \u2192 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435App layerInfra + \u0431\u0438\u0440\u0436\u0430\u0412\u0430\u0436\u043d\u0435\u0435 pingJitter\u0420\u0430\u0437\u0431\u0440\u043e\u0441 network latencyNetworkInfra\u041f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044cPacket loss\u041f\u043e\u0442\u0435\u0440\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432NetworkInfra \/ \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u041f\u043e\u0442\u0435\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0445Packet reorder\u041f\u0435\u0440\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u0435NetworkNetwork\u0426\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430Retransmission\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430NetworkNetwork\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0445\u0432\u043e\u0441\u0442\u043e\u0432Connection stability\u0420\u0430\u0437\u0440\u044b\u0432\u044b WS\/TCPNetworkInfra + \u0431\u0438\u0440\u0436\u0430\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044cReconnect time\u0412\u0440\u0435\u043c\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044fClient\u0422\u0432\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 + \u0431\u0438\u0440\u0436\u0430Recovery3. Rust WS \/ Data IngestSocket \u2192 processNIC \u2192 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435WS worker\u0422\u0432\u043e\u0439 Rust\u041d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044bParse latencyMessage \u2192 internal structWS workerRust\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c parserNormalize latencyRaw \u2192 unified formatWS workerRust\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438Book update latencyReceive \u2192 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 L2 bookWS workerRust\u041a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430Queueing delay\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044fWS workerRust \/ OS\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 bottleneckCPU scheduling delay\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 CPUOSInfraTail latencyDrop rate\u041f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 collectorWS workerRust\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445Redis write latencyCollector \u2192 RedisRust\/RedisInfra\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438WS \u2192 Redis ready\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0438\u0440\u0436\u0438 \u2192 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u043a\u043d\u0438\u0433\u0430Collector\u0422\u0432\u043e\u0439 Rust\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u04304. Redis \/ Real-time layerRead latencyRedis \u2192 strategyRedisInfra\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044fWrite latencyCollector \u2192 RedisRedisInfra\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438Pub\/Sub latencyEvent \u2192 subscriberRedisInfra\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044fQueue depth\u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438RedisInfra\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430Key freshness\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 RedisRedisInfra\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044cMemory usage\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 RAMRedisInfra\u0420\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044cEvictions\u0412\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439RedisInfra\u0420\u0438\u0441\u043a \u043f\u043e\u0442\u0435\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0445Contention\u041a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u044f \u0437\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044bRedisInfraTail latency5. Analytics \/ Feature EngineRedis \u2192 processing\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u043d\u0430\u0447\u0430\u043b\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438Python\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f latencyFeature calculation\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432StrategyPython\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438Spread calculation\u0420\u0430\u0441\u0447\u0435\u0442 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044bStrategyPython\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430Liquidity calculation\u0420\u0430\u0441\u0447\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430StrategyPython\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0445\u043e\u0434\u0430Funding calculation\u0420\u0430\u0441\u0447\u0435\u0442 funding edgeStrategyPythonFunding strategiesMarket freshness\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435Strategy\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 stale signalDecision Age\u0412\u043e\u0437\u0440\u0430\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044fStrategy\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f KPI6. Strategy \/ DecisionSignal generation latencyFeatures \u2192 signalStrategy\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430Decision latency\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0440\u0435\u0448\u0435\u043d\u0438\u0435Strategy\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 CPU budgetRisk-check latencySignal \u2192 risk decisionRisk\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044cPosition check latency\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439Risk\/DB\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0417\u0430\u0449\u0438\u0442\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438Opportunity lifetime\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0438\u0432\u0435\u0442 edgeMarket\u0420\u044b\u043d\u043e\u043a\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 E2ESignal decay\u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 edgeStrategyResearch\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u04387. Order Construction \/ ExecutionOrder constructionSignal \u2192 \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u044f\u0432\u043a\u0438Execution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044cSerializationObject \u2192 payloadExecution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434CPU overheadSigning latency\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438Execution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434CPU overheadQueueing delayDecision \u2192 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430Execution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0421\u043a\u0440\u044b\u0442\u0430\u044f latencyDecision \u2192 Wire\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2192 \u043f\u0430\u043a\u0435\u0442 \u0443\u0448\u0435\u043b \u0432 \u0441\u0435\u0442\u044cExecution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f KPICancel latency\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u2192 cancel \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043dExecution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0434\u0435\u0440\u043e\u043cRetry latency\u041e\u0448\u0438\u0431\u043a\u0430 \u2192 \u043f\u043e\u0432\u0442\u043e\u0440Execution\u0422\u0432\u043e\u0439 \u043a\u043e\u0434Recovery8. Outbound NetworkClient \u2192 endpoint\u0421\u0435\u0440\u0432\u0435\u0440 \u2192 API gatewayNetworkInfra\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438TLS overhead\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\/\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 TLSNetworkInfra + client\u0412\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439TCP connect latency\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044fNetworkInfra\u041d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 hot pathConnection reusePersistent connectionClientExecution\u0421\u043d\u0438\u0436\u0435\u043d\u0438\u0435 latencyRetransmission\u041f\u043e\u0432\u0442\u043e\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438NetworkInfraTail latency9. Exchange GatewayGateway \u2192 Matching EngineAPI gateway \u2192 matching\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 bottleneckOrder validation latency\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044fExchange risk-check latencyMargin\/risk\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044fMatching latencyOrder \u2192 matching decision\u0411\u0438\u0440\u0436\u0430Matching Engine\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044cQueue-entry latencyMatching \u2192 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043a\u043d\u0438\u0433\u0438\u0411\u0438\u0440\u0436\u0430Matching Engine\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u0435\u043d \u0434\u043b\u044f limitAck latencyRequest \u2192 acknowledgment\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430 + network\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433Reject latencyRequest \u2192 reject\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u043010. Order Book \/ Limit ExecutionTime-to-BookSend \u2192 \u0437\u0430\u044f\u0432\u043a\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u043a\u043d\u0438\u0433\u0435\u0411\u0438\u0440\u0436\u0430\u0411\u0438\u0440\u0436\u0430\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043b\u0438\u043c\u0438\u0442\u043d\u0430\u044f KPIQueue position\u041f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430\u044f\u0432\u043a\u0438Matching Engine\u0411\u0438\u0440\u0436\u0430 \/ \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c fillTime-to-first-fillOrder \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 fillExecution\u0420\u044b\u043d\u043e\u043a\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044fTime-to-full-fillOrder \u2192 \u043f\u043e\u043b\u043d\u044b\u0439 fillExecution\u0420\u044b\u043d\u043e\u043a\u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u043e\u0441\u0442\u044cFill probability\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044fExecution\u0420\u044b\u043d\u043e\u043a\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f KPIPartial fill ratio\u0414\u043e\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439Execution\u0420\u044b\u043d\u043e\u043a\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043eCancel-to-fill ratio\u041e\u0442\u043c\u0435\u043d\u044b \/ fillsExecution\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044cDisplayed \/ Executable Liquidity\u0412\u0438\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043c vs \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u044b\u0439Book + fills\u0411\u0438\u0440\u0436\u0430 + \u0442\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435\u0422\u0432\u043e\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430Fill Ratio\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \/ \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043cFills\u0422\u0432\u043e\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043d\u0438\u0433\u0438Slippage\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f \u2192 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430Execution\u0420\u044b\u043d\u043e\u043a\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044fAdverse selection\u0426\u0435\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 fillMarket dataStrategy \/ research\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e maker fillQueue decay\u0418\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0435\u0440\u0435\u0434 \u0442\u043e\u0431\u043e\u0439Order book\u0420\u044b\u043d\u043e\u043a\u041c\u043e\u0434\u0435\u043b\u044c fill11. Data QualityMessage loss\u041f\u043e\u0442\u0435\u0440\u044f market-data \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439WS\u0411\u0438\u0440\u0436\u0430 + collector\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445Duplicate rate\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439WSCollector\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e feedOut-of-order rate\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443WSCollector\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043d\u0438\u0433\u0438Stale rate\u0414\u043e\u043b\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439WSCollector\u0421\u0438\u0433\u043d\u0430\u043b\u044bBook reconstruction errors\u041e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f L2CollectorRust\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044cSnapshot\/delta mismatch\u041d\u0435\u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c snapshot \u0438 deltaCollectorRust + exchange\u041a\u0440\u0438\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u043012. InfrastructureCPU utilization\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 CPUServerInfraCapacityMemory utilizationRAMServerInfraCapacityDisk I\/O\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0438\u0441\u043a\u0430ServerInfraPostgreSQLNetwork utilization\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430ServerInfraCapacityProcess restart rate\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0438OSInfra\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044cUptime\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432InfraInfraSLAp99 resource latency\u0425\u0432\u043e\u0441\u0442\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432InfraInfraHFT13. Database \/ HistoryInsert latencyWrite \u2192 PostgreSQLDBInfra\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435Query latencySQL queryPostgreSQLInfraResearchCommit latencyTransaction commitDBInfraTransactional layerWAL latencyWrite-ahead logPostgreSQLDB\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044cReplication lagPrimary \u2192 replicaDBInfra\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430Storage growth\u0420\u043e\u0441\u0442 \u0434\u0430\u043d\u043d\u044b\u0445DBInfraCapacity14. Reliability \/ OperationsError rate\u041e\u0448\u0438\u0431\u043a\u0438 API\/WS\/execution\u0412\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b\u0412\u0441\u0435\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044cTimeout rate\u0422\u0430\u0439\u043c\u0430\u0443\u0442\u044bAPI\/WSInfra + exchange\u041f\u043e\u0442\u0435\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439Reject rate\u0414\u043e\u043b\u044f rejected ordersExecution\u0411\u0438\u0440\u0436\u0430\u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044cRate-limit hit rate\u0414\u043e\u043b\u044f \u0443\u043f\u043e\u0440\u0430 \u0432 \u043b\u0438\u043c\u0438\u0442\u044bAPI\u0411\u0438\u0440\u0436\u0430 + clientCapacityDisconnect rate\u0420\u0430\u0437\u0440\u044b\u0432\u044bWSInfra + exchangeMarket dataRecovery time\u0421\u0431\u043e\u0439 \u2192 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430InfraInfraResilience15. Market \/ Trading QualitySpreadBid\/ask spreadBook\u0420\u044b\u043d\u043e\u043a\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-489764","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/489764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=489764"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/489764\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=489764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=489764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=489764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}