Amazon satyjylary we olaryň toparlary üçin CRM we analitika platformasy — harytlar, üpjün edijiler, sargytlar, iberişler, frilans haýyşlary, çatlar we AI gurallary. Üç Node.js serwisinden ybarat: REST API, fon nobaty we real-time şlýuzy.
Meniň rolum
Üç serwisiň hemmesinde — API, nobat we real-time şlýuzy — baş backend programmist we arhitektor.
Tehnologiýalar
Node.js
Fastify
BullMQ
Socket.IO
PostgreSQL
Redis
OAuth 2.1
MCP
Mesele
Satyjylaryň toparlarynda dürli rollar bar — eýeler, gözegçiler, haryt gözlegçileri, satyn alyjylar, ammar işgärleri, frilanserler — we olaryň hemmesi şol bir harytlar, sargytlar we iberişler bilen işleýär. Platforma olaryň her birine diňe görmäge rugsat berlen zatlaryny görkezmeli, wakalara real-time jogap bermeli, agyr hasabatlary we AI işlerini fonda ýerine ýetirmeli hem-de daşarky AI kömekçilerine maglumatlar bilen howpsuz işlemäge mümkinçilik bermeli.
Arhitektura
Müşderi programmalary Fastify API-ni gysga möhletli JWT bilen çagyrýar we Socket.IO şlýuzy bilen WebSocket birikmesini açyk saklaýar. API PostgreSQL-e ýazýar we uzak ýa-da agyr işleri — hasabatlary, çat habarlaryny köp alyja ýaýratmagy, AI generasiýasyny, meýilnama boýunça işleri — Redis arkaly BullMQ workerlerine tabşyrýar. API we workerler real-time wakalaryny şlýuz arkaly iberýär; şlýuz Redis adapteriniň kömegi bilen birnäçe nusgada işleýär. Aýratyn PostgreSQL bazasynda daşarky parseriň ýazýan Amazon hasabatlary saklanýar, nobat bolsa olardan jemleýji görkezijileri gaýtadan hasaplap, esasy baza ýazýar. AI kömekçileri MCP arkaly OAuth 2.1 bilen birikýär.
Esasy çözgütler
01Uzak wagt alýan AI işleri — long-polling bilen asinhron tabşyryklar
Näme üçin
Generasiýa birnäçe minut dowam edýär, proksi bolsa birikmeleri 60 sekuntdan soň kesýär, şonuň üçin tölegi eýýäm geçen netijeler ýitýärdi. Indi sorag 202 gaýtarýar, müşderi long-polling edýär, Redis pub/sub ony wagtyndan öň oýarýar, maglumat bazasyndaky ýazgy bolsa hakykatyň çeşmesi bolup galýar. Her sorag idempotentlik açaryny göterýär, işler bolsa hiç haçan awtomatik gaýtalanmaýar — gaýtalamak iki gezek tölemegi aňladýar.
Kompromis
Bölekler köpelýär — işleriň ýagdaýlary, ýapylyp galan işleri arassalaýjy — býudžetleri bolsa diňe ýumşak görnüşde berjaý etdirip bolýar.
02Giriş hukuklaryna gözegçilik bir ýerde däl, gatlaklarda
Näme üçin
URL rugsatlary, rollar, repozitoriýalardaky eýeçilik çäkleri, seriýalizasiýa wagtynda meýdan derejesinde maskalamak we bildiriş alyjylary — olaryň her biri özüne degişli ýerde barlanýar. MCP açary öz çäginiň we eýesiniň häzirki hukuklarynyň kesişmesini alýar, şonuň üçin AI kömekçisi hiç haçan ulanyjynyň görüp bilýäninden köp zady görüp bilmeýär.
Kompromis
Her täze endpoint birnäçe gatlakda hasaba alynmaly.
03Iberişlerde setirleri kesgitli tertipde gulplamak
Näme üçin
Şol bir guty iki brauzer goýmasynda gaýtadan döredilende dublikatlar peýda bolýardy we ammardaky haryt mukdary iki esse köpelýärdi. Indi gaýtadan döretmek tranzaksiýanyň içinde kesgitli tertipde SELECT … FOR UPDATE we şertli täzelemek bilen ýerine ýetirilýär; ýeňlen sorag maglumatlary bozmagyň ýerine 409 alýar.
Kompromis
Gutulara degişli her bir endpoint şol bir gorag barlagyndan geçmeli.
04Her okaýan üçin aýratyn setiriň ýerine okalyş kursorlary
Näme üçin
Her habary kimiň okandygyny saklamak habarlaryň sanynyň gatnaşyjylaryň sanyna köpeltmek hasylyna görä ösýär. Her çatda — we her şahada — her ulanyjy üçin bir kursor okalmadyk habarlaryň hasaplaýjylaryny ýönekeý, tablisany bolsa kiçi saklaýar.
Kompromis
Okalmadyk habarlaryň düzgünleri hem API-de, hem şlýuzda ýerleşýär we olar biri-biri bilen gabat gelmeli.
Näme döretdim
Üç serwis — Fastify REST API, BullMQ workerleri we Socket.IO şlýuzy — umumy PostgreSQL we Redis ulanýar
OAuth 2.1 + PKCE prowaýderi we MCP serweri: Claude we ChatGPT CRM maglumatlary bilen ulanyjynyň hukuklarynyň çäginde işleýär
Giriş hukuklaryna gözegçiligiň bäş gatlagy: URL rugsatlary, rollar, obýektlere eýeçilik, meýdan derejesinde maskalamak we bildiriş alyjylary
Gysga möhletli access-tokenler we refresh-tokenleri aýlamak (rotation), sessiýalaryň sanyna çäk, kömekçi ulanyjylar, administratoryň ulanyjynyň adyndan girmegi (impersonation) we içerki gurallar üçin SSO
AI arkaly asinhron generasiýa: long-polling, idempotentlik açarlary, ýatyrmak, her ulanyjy we her topar üçin býudžetler
Şahaly (thread), reaksiýaly, berkidilen habarly we okalyş kursorly çatlar; Redis adapterli, birnäçe nusgada işleýän Socket.IO
Daşarky Amazon maglumat parseriniň doldurýan aýratyn hasabat bazasy we nobatda meýilnama boýunça gaýtadan hasaplamalar
Işi togtatmazdan migrasiýalar: CONCURRENTLY döredilýän indeksler, NOT VALID daşky açarlar we gulplamalar üçin taýmautlar