Telegramda yozing@Odilient

VEB-PLATFORMA

Real vaqt rejimidagi kripto-bozor agregatori

NDA ostidagi fintex-startap uchun yagona kripto-narxlar oqimi: bir nechta sekin va so‘rovlar soni cheklangan provayder API’lari taxminan har 15 soniyada yangilanadigan bitta oqimga birlashtirilgan.

NDA
Mijoz
Fintex va kripto
Soha
5 oy
Muddat
2023
Yil
Boshlang‘ich nuqta

Muammo

Startapning boshqaruv panellariga taxminan har 15 soniyada yangilanadigan kripto-narxlar kerak edi. U to‘lay oladigan ommaviy bozor ma’lumotlari API’lari esa har 30–40 soniyada, beqaror, qat’iy so‘rov limitlari va qimmat ma’lumotlar narxi bilan ishlardi. Premium korporativ bozor ma’lumotlari variant emas edi. Provayderlar turli tezlikda javob berardi, shuning uchun istalgan bitta provayderning so‘nggi raqamini ko‘rsatish sekin va sakrab turadigan oqim berardi.

Biz nima qildik

Yechim

Biz limitlardan oshmaslik uchun bir nechta provayderga siljitilgan jadval bo‘yicha so‘rov yuboradigan agregatsiya qatlamini qurdik. U kelayotgan narx yangilanishlarini takrorlardan tozalaydi va yagona ishonchli manbaga birlashtiradi, provayderlarni esa vaznlar bo‘yicha tanlaydi va manba sifati pasayganda avtomatik ravishda zaxiraga o‘tadi. Birlashtirilgan oqim Redis’da keshlanadi va WebSockets orqali panellarga uzatiladi; SEO muhim bo‘lgan sahifalar Inertia.js bilan serverda render qilinadi, butun tizim esa Docker konteynerlarida ishlaydi.

Texnologiyalar
LaravelPostgreSQLRedisWebSocketsInertia.jsDocker
Parda ortida

Loyiha qanday yaratildi

Ko‘plab ishonchsiz manbalardan bitta ishonchli kripto-narxlar oqimi

Kripto-bozor ma’lumotlari tarqoq. Har bir provayderning o‘z kechikishi, limitlari va narxlari bor, arzonlaridan hech biri esa bu fintex-startapga (NDA ostida) kerakli narsani bera olmadi: taxminan har 15 soniyada yangilanadigan boshqaruv panellarini. Qo‘l yetadigan ommaviy API’lar har 30–40 soniyada va beqaror yangilanardi.

Biz kripto-bozor ma’lumotlari agregatorini besh oy ichida MVP’dan production’gacha olib chiqqan uch kishilik full-stack jamoaning bir qismi edik.

Asosiy imkoniyatlar

  • Bir nechta provayderga siljitilgan so‘rovlar: har bir provayderga o‘z siljishiga ega jadval bo‘yicha so‘rov yuboriladi, shuning uchun so‘rovlar bir vaqtda limitga urilmay, vaqt bo‘ylab taqsimlanadi.
  • Narx yangilanishlarini takrordan tozalash va muvofiqlashtirish: takroriy va bir-biriga zid narx yangilanishlari yagona ishonchli manbaga birlashtiriladi.
  • Provayderlarni vaznlar bo‘yicha tanlash: provayderlarga vaznlar berilgan, shuning uchun agregator qaysi ma’lumotga ishonishni tanlaganda ishonchliroq manbalarni afzal ko‘radi.
  • Avtomatik zaxira oqimlar: bitta manba sifati pasaysa, ma’lumotlar boshqalaridan kelishda davom etadi.
  • ~15 soniyalik birlashtirilgan yangilanishlar: Redis’da keshlangan oqim taxminan 15 soniyalik sikl bilan yangilanadi.
  • WebSocket orqali yetkazish: panellar yangi narxlarni serverga so‘rov yubormasdan, e’lon qilinishi bilanoq oladi.
  • Xarajatni hisobga oladigan rejalashtirish: so‘rovlar jadvali pullik API chaqiruvlarini minimal darajada ushlab turish uchun sozlangan.

Arxitektura va texnologiyalar

Laravel va PostgreSQL’dagi agregatsiya qatlami

Agregator — PostgreSQL bilan ishlaydigan Laravel ilovasi. Rejalashtirilgan so‘rov vazifalari har bir provayderdan narxlarni yig‘adi va yangilanishlarni muvofiqlashtirishga uzatadi. Provayderlar turli tezlikda javob beradi, shuning uchun muvofiqlashtirish mantig‘i har bir manba bir vaqtda xabar beradi deb hisoblamaydi — kechikib kelgan ma’lumotlarni qayta ishlashga mo‘ljallangan.

Redis keshi va WebSocket oqimi

Muvofiqlashtirilgan narxlar birlashtirilgan oqim vazifasini bajaradigan Redis’ga yoziladi. Panellar shu keshdan o‘qiydi va hech qachon provayderlarga to‘g‘ridan-to‘g‘ri murojaat qilmaydi, shuning uchun panellarga trafik oshishi pullik API chaqiruvlari ko‘payishini anglatmaydi. Yangi narxlar frontend’ga WebSockets orqali yetib boradi va panellarni jonli saqlaydi.

Inertia.js sahifalari va Docker

Foydalanuvchi ko‘radigan sahifalar Inertia.js bilan qurilgan, qidiruvda ko‘rinish muhim bo‘lgan sahifalarda esa server tomonida render qilish ishlatiladi. Butun tizim Docker’da konteynerlashtirilgan, shuning uchun deploy har safar bir xil takrorlanadi.

Ishonchlilik va xarajatlar nazorati

Bu yerdagi eng qiyin muammolar operatsion edi:

  • Kechikishlardagi farq: muvofiqlashtirish tez va sekin provayderlar o‘rtasidagi farqni yutib yuboradi, shuning uchun bitta sekin manba butun oqimni ushlab qolmaydi.
  • Limitlar va ma’lumotlar narxi: siljitilgan so‘rovlar va kesh so‘rovlar hajmini har bir provayder limiti ichida ushlaydi va tashqi API xarajatlarini kamaytiradi.
  • Provayderlardagi uzilishlar: vaznli tanlov va zaxira oqimlar tufayli bitta provayderni yo‘qotish mahsulotni to‘xtatib qo‘ymaydi — oqim ortida shunchaki kamroq manba qoladi.

O‘xshash ishlar

SI asosidagi kripto-tahlil platformasi bozor ma’lumotlari ustiga kayfiyat tahlili va firibgarlikni aniqlashni qo‘shadi. Finkonkurs — kriptovalyuta narxlari, birjalar va yangiliklar portali. Bunday ma’lumotlarga boy mahsulotlarni biz veb-ilovalar yaratish xizmatimiz doirasida quramiz.

Birga yaratamiz

Real vaqt rejimidagi kripto-bozor agregatori kabi loyiha kerakmi?

Mahsulotingiz nima qilishi kerakligini ayting. Ish hajmini belgilaymiz, muddatlarni rejalashtiramiz va qat’iy narx yuboramiz — bepul va davom ettirish majburiyatisiz.

Bepul konsultatsiya Majburiyatsiz Tezkor javob