Data exchange — ikki yoki undan ortiq tizim o‘rtasida ma’lumotni kelishilgan format, protokol va semantika asosida uzatish jarayoni. U fayl almashuvi, API chaqiruvi, message broker, database replikatsiyasi yoki real-time stream orqali bajarilishi mumkin. Muvaffaqiyatli exchange baytlarni yetkazishdan tashqari, qabul qiluvchi ularni jo‘natuvchi nazarda tutgan ma’noda talqin qilishini ta’minlaydi.
Almashuv modeli
Batch exchange ma’lumotni davriy fayl yoki paketlarda uzatadi. U katta hajm va kunlik hisob-kitob uchun sodda, lekin yangilanish kechikadi. Request-response modelida consumer kerakli paytda API chaqiradi. Publish-subscribe producer’ni aniq consumerlardan ajratib, eventlarni ko‘plab qabul qiluvchiga tarqatadi.
Streaming uzluksiz o‘zgarishlarni past latency bilan yetkazadi. Change Data Capture database logidan insert, update va delete hodisalarini olishi mumkin. Har model latency, izchillik, qayta ishlash va operatsion murakkablik bo‘yicha farq qiladi. Bitta tashkilot turli data oqimlari uchun bir nechta model ishlatadi.
Sintaksis va semantika
JSON, XML, CSV, EDI yoki binary schema yozilish shaklini belgilaydi. Lekin status: 1 nimani anglatishi, summa qaysi valyutada va sana qaysi timezone’da ekani data contractda aniq bo‘ladi. Umumiy vocabulary yoki canonical data model ko‘p tizim orasidagi tarjimalarni kamaytirishi mumkin.
Canonical model haddan tashqari umumiy bo‘lsa har bir domenning muhim ma’nosini yo‘qotadi. Anti-corruption layer tashqi contractni ichki domain modelga mapping qiladi. Source fieldni ichki jadvalga bevosita bog‘lash tashqi hamkor o‘zgarishini butun tizimga tarqatadi.
Identifikatsiya va izchillik
Bir entity tizimlarda turli ID olishi mumkin. Master Data Management va mapping jadvali stable cross-system identifikator beradi. Ism yoki telefon bo‘yicha taxminiy matching xato birlashtirish xavfiga ega. Record provenance qaysi manbadan va qachon kelganini saqlaydi.
Distributed exchange’da barcha tizim bir onda yangilanmasligi mumkin. Version, sequence number yoki event time eskirgan yangilanishni aniqlaydi. Clock farqi sabab oddiy timestamp bilan “eng so‘nggi”ni tanlash har doim to‘g‘ri emas. Conflict policy va source-of-truth oldindan belgilanadi.
Ishonchlilik
Acknowledgement xabar qabul qilinganini yoki qayta ishlanganini aniq ajratadi. Retry idempotent operation va deduplication bilan birga ishlaydi. Dead-letter queue yoki quarantine noto‘g‘ri yozuvni umumiy oqimdan ajratadi. Reconciliation jo‘natuvchi va qabul qiluvchi count, checksum yoki aggregate’ini solishtiradi.
File exchange’da producer vaqtinchalik nom bilan yozib, fayl tugagach atomik rename qiladi. Consumer faqat manifestda tayyor deb belgilangan partlarni oladi. API’da pagination cursor barqaror snapshotga tayanadi. Stream’da checkpoint consumerning qayta boshlash pozitsiyasini saqlaydi.
Boshqaruv va xavfsizlik
Data owner, steward, schema version, retention va sifat ko‘rsatkichi katalogda qayd etiladi. Contract o‘zgarishi consumerlarga oldindan e’lon qilinadi va compatibility testdan o‘tadi. Data lineage qiymat manbadan hisobotgacha qaysi transformatsiyalardan o‘tganini ko‘rsatadi.
Transport shifrlanadi, tomonlar autentifikatsiya qilinadi va har consumer faqat zarur datasetga ruxsat oladi. Data minimization almashinuvdan ortiqcha fieldlarni chiqaradi. Fayl va xabar imzosi yaxlitlikni tasdiqlashi mumkin. PII boshqa yurisdiksiyaga o‘tsa, residency va qonuniy asos tekshiriladi.
Test muhiti
Hamkor integratsiyasi uchun sandbox production contractga yaqin, lekin real shaxsiy ma’lumotsiz bo‘ladi. Consumer valid, invalid, duplicate, kechikkan va tartibi almashgan namunalarni sinaydi. Contract test faqat happy pathni emas, schema version va error response’ni ham qamrab oladi. Productionga chiqishda kichik canary oqim bilan mapping va monitoring tekshiriladi.
Test fayl yoki event uzoq vaqt o‘zgarmasa yangi field va edge case qamrab olinmaydi. Sanitizatsiya qilingan real namunalar va generative fixture’lar birgalikda ishlatiladi. Har fixture qaysi biznes qoidani isbotlashi nom bilan ko‘rsatiladi.
Bog‘liq tushunchalar
Data interchange, Data contract, API, Message broker, EDI, Data integration, Schema evolution