Integration — mustaqil dastur, xizmat, ma’lumot manbasi yoki qurilmalarni kelishilgan interfeys orqali birgalikda ishlaydigan tizimga bog‘lash jarayoni. Integratsiya faqat API chaqirishdan iborat emas; data modeli, identity, xato semantikasi, versiya, xavfsizlik va operatsion kuzatuv ham kelishiladi. Ikki komponent texnik ulanib, lekin bir xil biznes tushunchani turlicha talqin qilsa, integratsiya funksional jihatdan noto‘g‘ri ishlashi mumkin.
Bog‘lanish usullari
Sinxron integratsiyada client request yuborib, shu ulanish doirasida javob kutadi. HTTP REST, gRPC va database query bunga misol. U oddiy oqim beradi, lekin upstream latency va mavjudlikni downstreamga bog‘laydi. Timeout, deadline va connection pool chegaralari bo‘lmasa bitta sekin xizmat butun zanjirni bloklashi mumkin.
Asinxron integratsiyada producer message broker yoki event logga xabar yozadi, consumer keyin qayta ishlaydi. Bu vaqt bo‘yicha bog‘liqlikni kamaytiradi va burstni queue bilan yumshatadi. Biroq duplicate delivery, ordering, retry, dead-letter va eventual consistency boshqariladi. Foydalanuvchiga darhol yakuniy natija kerak bo‘lsa status endpoint yoki notification oqimi yaratiladi.
Batch integratsiya fayl, ETL yoki rejalashtirilgan eksport orqali ko‘p yozuvni bir vaqtda uzatadi. U real-time talab qilinmaydigan hisobot va migratsiyada samarali, ammo xatoli bitta qator, partial success va qayta ishga tushirish siyosatini talab qiladi. File checksum transport buzilishini, schema validation esa mazmun shaklini tekshiradi.
Contract
API contract endpoint, method, request/response schema, status code va authenticationni belgilaydi. OpenAPI, Protocol Buffers yoki AsyncAPI machine-readable tavsif beradi. Contract faqat syntax emas: amount birligi, timezone, nullable maydon, rounding va ID barqarorligi hujjatlashtiriladi.
Consumer eski versiyada qolishi mumkinligi sabab o‘zgarishlar backward compatibility bilan chiqariladi. Optional maydon qo‘shish odatda xavfsiz, required maydon qo‘shish yoki type almashtirish breaking change bo‘lishi mumkin. Tolerant reader noma’lum maydonni e’tiborsiz qoldiradi, lekin noto‘g‘ri semantikani jim qabul qilmasligi kerak.
Data mapping
Bir tizimda customer, boshqasida account ayni obyektning to‘liq ekvivalenti bo‘lmasligi mumkin. Mapping table ID, enum, currency va statuslarni aniq bog‘laydi. External ID source system bilan korrelatsiyani saqlaydi; email kabi o‘zgaruvchan qiymat asosiy key sifatida ishlatilsa dublikat paydo bo‘lishi mumkin.
Canonical data model ko‘p tizim orasida umumiy format beradi, ammo barcha domenni ulkan yagona schema’ga majburlash murakkablik yaratadi. Anti-corruption layer tashqi modelni ichki domain modelga tarjima qilib, vendor xususiyatlarini biznes koddan ajratadi.
Xato va idempotency
Vaqtinchalik tarmoq xatosi exponential backoff va jitter bilan retry qilinadi. Validation yoki ruxsat xatosi request o‘zgarmasa takrorlanmaydi. Client timeout olganda server amalni bajargan bo‘lishi mumkin; state-changing request idempotency key bilan duplicate side effectdan himoyalanadi.
Partial failure, masalan order yaratilib, email yuborilmaganda distributed transaction har doim mavjud emas. Saga pattern mahalliy transactionlar va compensating actionlar bilan jarayonni boshqaradi. Compensation asl amalni tarixdan o‘chirmaydi; biznes ma’noda teskari event yaratadi.
Xavfsizlik va kuzatuv
Har integration alohida service identity va minimal scope oladi. Shared administrator token qaysi tizim amal qilganini yashiradi. TLS transportni, request signature yoki mTLS kerak bo‘lsa jo‘natuvchini himoya qiladi. Secretlar rotation qilinadi va payload loglarida maskalanadi.
Correlation ID va trace context xizmatlar orasida uzatiladi. Metrikalar success rate, latency, retry, queue lag va contract errorni ko‘rsatadi. Synthetic check real credentialning cheklangan test nusxasi bilan end-to-end oqimni tekshirishi mumkin. Integratsiya owneri, dependency, SLO va incident aloqa yo‘li inventarda saqlanadi.
Bog‘liq tushunchalar
API, Message broker, Data mapping, Contract testing, Idempotency, Saga, ETL