اجعل الانضمام إلى الحديث بسيطًا.
يبدأ Kalamna بخطوة اجتماعية مألوفة: ابحث عن غرفة وانضم إلى الحديث. يجمع المنتج المحادثات الصوتية الجماعية والرسائل الخاصة والمتابعة في تجربة واحدة. امتد عملي عبر تطبيق الجوّال والخدمات الداعمة والإدارة ومراحل الوصول إلى الإصدار.
تبدأ الرحلة بالملف الشخصي ثم الاستكشاف، وصولًا إلى غرفة قائمة أو مساحة جديدة يختار أحدهم استضافتها. وتمنح متابعة الأشخاص والرسائل المباشرة المحادثة امتدادًا بعد انتهاء الجلسة الحية.
أنواع التفاعل المباشر تحتاج إلى قنوات مختلفة.
تجمع الغرفة بين بيانات التطبيق الدائمة وحالة الحضور سريعة التغير والصوت المباشر. التعامل معها كلها كنوع واحد من حركة البيانات سيجعل تحديد المسؤوليات صعبًا. لذلك تمنح البنية كل قناة مهمة محددة.
يدعم Flutter وRiverpod تجربة الجوّال، مع واجهة إدارة مبنية على React وخلفية تستخدم TypeScript وExpress. ينقل GraphQL بيانات التطبيق، وتنقل WebSockets أحداث الغرف والحضور. ويتولى LiveKit نقل الصوت، ليبقى مساره منفصلًا عن بقية حالة التطبيق.
افصل ما حدث عمّن هو حاضر.
يحتفظ PostgreSQL بالسجلات الدائمة، بينما يدعم Redis المهام المؤقتة. ويوفّر NATS تبادل الرسائل بين الخدمات بنمط النشر والاشتراك. وتربط قائمة الإرسال المعاملاتية المهام القابلة للاستئناف الخاصة بنشر الأحداث بالحالة الدائمة التي أنشأتها.
يصبح هذا الفصل مهمًا عند تعذّر الوصول إلى إحدى الخدمات. فنشر حدث والاحتفاظ بالالتزام بنشره عمليتان مختلفتان. النقل عبر Core NATS مؤقت؛ لذا يجب أن توجد حوله آلية دائمة تتولى إعادة المحاولة. وتجعل قائمة الإرسال مهام النشر قابلة للفحص، دون افتراض أن كل أثر لاحق سيحدث مرة واحدة بالضبط.
استضافة غرفة تعني أيضًا تحمّل مسؤوليات.
الإدارة جزء من المنتج. تحتاج البلاغات والإشراف والتحقق من الهوية وإرسال الإشعارات وسجلات المشتريات كلها إلى مسارات عمل داعمة. شاشة الغرفة المصممة بعناية ليست سوى جزء من خدمة يستطيع الناس الاستمرار في استخدامها.
أدرجت هذه الجوانب ضمن نطاق الخلفية البرمجية والإدارة إلى جانب التفاعلات الاجتماعية. وهذا يمنح المنتج أدوات تشغيلية للتعامل مع الأحداث التي لا تظهر في العرض المثالي: تصفح، وانضم، وتحدث.
امنح المحادثة امتدادًا.
الصوت الجماعي هو محور التجربة، لكنه ليس مضطرًا لأن يكون العلاقة كلها. تجعل الملفات الشخصية الأشخاص معروفين، وتساعد المتابعة على العثور عليهم مجددًا، وتتيح الرسائل المباشرة حديثًا أكثر خصوصية خارج الغرفة.
أثّر هذا الاستمرار في طريقة تصميمي للنظام: تضم الجلسة المباشرة مشاركين وحضورًا مؤقتين، بينما يحتفظ المنتج المحيط بها بالعلاقات والسجلات التي تمنح العودة إليه معنى. يجب أن يتعايش هذان الإطاران الزمنيان دون معاملتهما كحالة متطابقة.
منتج جوّال تم إصداره.
يتوفر Kalamna على iPhone وiPad باسم Jiss Tech LLC، مع مشتريات داخل التطبيق. تعرض لقطات الواجهة المنشورة رحلة الغرف الصوتية والطابع الاجتماعي للمنتج. وتصف البنية المذكورة هنا جيل ProjectX من الخدمة.
يشمل العمل التجربة المرئية والأنظمة التي تدعمها: تنقل الجوّال والنقل المباشر والبيانات الدائمة ونشر الأحداث والإدارة. تظل جودة الاتصال مرتبطة بالشبكة والجهاز. وتسهّل المسؤولية الواضحة لكل طبقة فهم هذه الحدود وصيانتها.


