پرش به محتوا
Platform

پلتفرم دارا

یک هستهٔ مالی، یک موتور فرایند و زیرساختی مشترک که همهٔ ماژول‌ها روی آن ساخته شده‌اند. در این صفحه توضیح داده‌ایم هر بخش چه کاری می‌کند و چرا این‌طور طراحی شده است.

Foundations

اصول طراحی

این اصل‌ها در همهٔ سرویس‌های دارا رعایت می‌شوند و بیشتر رفتارهای پلتفرم از آن‌ها نتیجه می‌شود.

  1. ۰۱

    یک هسته برای همهٔ مانده‌ها

    هیچ ماژولی ماندهٔ محلی نگه نمی‌دارد. سپرده، کیف پول، تسهیلات و پرتفوی سرمایه‌گذاری مانده را از هستهٔ مالی می‌خوانند و سند را همان‌جا ثبت می‌کنند. چارت حساب چندسطحی با تفصیل شناور و کلید یکتا روی هر ثبت، این هسته را به تنها مرجع قابل استناد تبدیل می‌کند.

  2. ۰۲

    فرایند به شکل داده

    گراف هر فرایند در یک ستون داده نگه داشته می‌شود و مثل هر دادهٔ دیگری نسخه می‌خورد، اعتبارسنجی و منتشر می‌شود. تغییر ترتیب کارها یا افزودن یک تأیید، تصمیمی در طراحی فرایند است و به چرخهٔ ساخت و انتشار در چند سرویس نیاز ندارد.

  3. ۰۳

    هویت جدا از مجوز

    صدور توکن کار ماژول احراز هویت است و عضویت، نقش و فهرست مجوزها کار ماژول کاربر و شرکت. توکن فقط در دروازه بررسی می‌شود و مشخصات تأییدشدهٔ کاربر، پس از پاک‌سازی هدرهای ورودی، به درخواست افزوده می‌شود.

  4. ۰۴

    هر ماژول مالک دادهٔ خودش

    مرز هر ماژول مرز پایگاه‌دادهٔ آن هم هست و هیچ ماژولی مستقیم در جدول ماژول دیگر نمی‌نویسد. هر ماژول دو چیز به بیرون عرضه می‌کند: عملیات فراخوانی‌پذیر و رویدادهای منتشرشده.

  5. ۰۵

    یک الگو در همهٔ سرویس‌ها

    هر سرویس دامنه همان ساختار لایه‌ای، همان قالب پاسخ، همان قرارداد صفحه‌بندی و همان ترتیب پردازش درخواست را دارد. این یکنواختی خواندن و نگهداری کد را ساده می‌کند و افزودن ماژول تازه را کاری قابل تکرار می‌کند.

Architecture

لایه‌های پلتفرم

از اپ مشتری تا زیرساخت، هر لایه مسئولیت مشخصی دارد. هستهٔ مالی در میانه قرار گرفته و همهٔ لایه‌های بالاتر برای مانده به آن تکیه می‌کنند.

  1. ۰۱

    EXPERIENCE

    لایهٔ تجربه

    اپ مشتری، پنل سازمان، پورتال پذیرنده و بک‌آفیس. همه مستقیم روی همان داده‌ای کار می‌کنند که در هستهٔ مالی ثبت شده و نسخهٔ همگام‌شدهٔ جداگانه‌ای ندارند.

    • اپ مشتری
    • پنل سازمان
    • پورتال پذیرنده
    • بک‌آفیس
  2. ۰۲

    DOMAIN MODULES

    ماژول‌های دامنه

    سپرده، تسهیلات، کارت، کیف پول و وثیقه هر کدام پایگاه‌دادهٔ خود را دارند. هیچ ماژولی در جدول ماژول دیگر نمی‌نویسد و ارتباط از راه عملیات فراخوانی‌پذیر و رویدادهای منتشرشده است.

    • سپرده
    • تسهیلات
    • کارت
    • کیف پول
    • وثیقه
    • پذیرنده
  3. ۰۳

    PROCESS ENGINE

    موتور فرایند

    گراف هر فرایند دادهٔ نسخه‌دار است. کارتابل کارشناسان، تایمرها و هماهنگی میان ماژول‌ها در این لایه اجرا می‌شوند.

    • طراح فرایند
    • کارتابل
    • تایمر پایدار
    • صف خروجی رویداد
  4. ۰۴

    FINANCIAL CORE

    هستهٔ مالی

    تنها مرجع مانده؛ چارت حساب چندسطحی با تفصیل شناور، سند سه‌مرحله‌ای و دورهٔ مالی با شماره‌گذاری بازگشت‌ناپذیر.

    • چارت حساب
    • سند
    • دورهٔ مالی
    • تفصیل شناور
  5. ۰۵

    PLATFORM

    زیرساخت

    دروازهٔ واحد ورودی، هویت و مجوز جدا از هم، ثبت و کشف سرویس، مدیریت اسناد با رمزنگاری و لاگ متمرکز.

    • API Gateway
    • هویت و مجوز
    • کشف سرویس
    • مدیریت اسناد
    • لاگ متمرکز
Process Engine

موتور فرایند

موتور فرایند دارا وضعیت هر پرونده را در ساده‌ترین شکل ممکن نگه می‌دارد؛ خواندن وضعیت فعلی یک پرس‌وجوی ساده است و به بازخوانی تاریخچه نیازی ندارد.

ثبت درخواستاپ مشتریبررسی مدارککارشناس شعبهاعتبارسنجیامتیاز و اهلیتارزیابی وثیقهماژول وثیقهکمیتهٔ اعتبارکارتابلثبت سندهستهٔ مالی
فرایند «پرداخت تسهیلات» · نسخهٔ ۳ منتشر شدگام انسانی در کارتابل
  1. ۰۱

    فرایند به شکل دادهٔ نسخه‌دار

    هر فرایند چرخهٔ پیش‌نویس، منتشرشده و بایگانی دارد. انتشار نسخهٔ تازه یک فراخوانی است و به استقرار دوبارهٔ هیچ سرویسی نیاز ندارد. پرونده‌های در جریان روی نسخهٔ خودشان می‌مانند.

  2. ۰۲

    پیشروی اتمیک پشت قفل پرونده

    هر گام در تراکنشی جلو می‌رود که اول قفل همان پرونده را می‌گیرد. اگر چند ماژول هم‌زمان پاسخ بدهند، پاسخ‌ها پشت همین قفل صف می‌شوند و وضعیت پرونده دوگانه نمی‌شود.

  3. ۰۳

    رویداد و وضعیت در یک تراکنش

    تغییر وضعیت و رویدادی که آن را اعلام می‌کند با هم ثبت می‌شوند یا هیچ‌کدام. تحویل رویداد جداگانه، با امضای HMAC و تلاش دوباره با فاصلهٔ فزاینده انجام می‌شود.

  4. ۰۴

    کارتابل انسانی و مهلت‌ها

    کار انسانی با نقش مقصد و محدودهٔ جغرافیایی ثبت می‌شود و می‌توان آن را تحویل گرفت، تکمیل کرد، برگرداند یا ارجاع داد. تایمرها پایدارند و با راه‌اندازی دوبارهٔ سرویس از بین نمی‌روند.

  5. ۰۵

    هجده نوع نود

    از کار انسانی و تایمر تا فراخوانی سامانه‌های بیرونی. تحلیلگر فرایند گراف را در طراح بصری می‌کشد و برای هر کار انسانی نقش و مهلت تعیین می‌کند.

  6. ۰۶

    اعتبارسنجی پیش از انتشار

    گراف پیش از انتشار بررسی می‌شود تا گام بی‌خروجی یا مسیر ناتمام در آن نماند. خطاها در همان طراح دیده می‌شوند.

یادداشت: افزودن مرحلهٔ تأیید بدون انتشار نرم‌افزار
Shared Services

زیرساخت مشترک

ماژول‌های دامنه روی این سرویس‌های مشترک کار می‌کنند و هیچ‌کدام این کارها را جداگانه تکرار نمی‌کنند.

احراز هویت

ورود کاربران و صدور توکن دسترسی در کل پلتفرم فقط در این ماژول انجام می‌شود.

دروازهٔ API

تنها ورودی درخواست‌ها به ماژول‌ها. توکن همین‌جا بررسی می‌شود و مسیر هر درخواست از روی ثبت سرویس‌ها پیدا می‌شود.

مدیریت اسناد

فایل‌ها و مدارک با رمزنگاری لایه‌ای و در محل ذخیره‌سازی قابل انتخاب نگهداری می‌شوند.

اعلان و پیام‌رسانی

پیامک، رایانامه، اعلان گوشی، صندوق پیام درون برنامه و کد یک‌بارمصرف، همه از یک نقطهٔ خروج.

زمان‌بند مرکزی

کارهای زمان‌دار همهٔ ماژول‌ها از یک زمان‌بند اجرا می‌شوند و منطق هر کار نزد ماژول صاحب آن می‌ماند.

هاب سرویس‌های خارجی

هر تماس با سامانه‌های بیرون از سازمان از مسیری تعریف‌شده عبور می‌کند که قابل پیکربندی و پایش است.

Security & Audit

امنیت و ممیزی

امنیت در دارا به چند اصل ساده برمی‌گردد که در همهٔ ماژول‌ها یکسان اجرا می‌شوند: یک ورودی، هویت جدا از مجوز، سند بازگشت‌ناپذیر و سابقهٔ کامل.

یک در ورودی

هیچ درخواستی بدون عبور از دروازهٔ API به ماژول‌ها نمی‌رسد. توکن همان‌جا بررسی و هدرهای ورودی پاک‌سازی می‌شوند.

هویت جدا از مجوز

صدور توکن کار ماژول احراز هویت است و نقش‌ها و فهرست مجوزها در ماژول کاربر و شرکت تعریف می‌شوند.

سند بازگشت‌ناپذیر

سند دائم ویرایش نمی‌شود و شمارهٔ عطف هر دورهٔ مالی پیاپی و بدون جای خالی است.

کلید یکتا روی هر ثبت

ثبت سند، انتقال وجه و خرید با کلید یکتا انجام می‌شوند تا تکرار درخواست اثر دوباره نگذارد.

مدارک رمزنگاری‌شده

فایل‌ها و مدارک در ماژول مدیریت اسناد با رمزنگاری لایه‌ای نگهداری می‌شوند و ماژول‌های دیگر فقط شناسهٔ فایل را دارند.

سابقهٔ عملیات

گذارهای هر پرونده، عملیات کاربران و پاسخ‌های دستیار هوشمند همراه با منبعشان ثبت می‌شوند و برای ممیزی در دسترس‌اند.

Technology

فناوری‌هایی که با آن‌ها کار می‌کنیم

پلتفرم با فناوری‌هایی ساخته شده که در زیرساخت سازمان‌های مالی ایران آشنا هستند و روی سرورهای خود سازمان قابل اجرا هستند.

بک‌اند

۰۱
  • .NET 10
  • ASP.NET Core
  • Node.js

رابط کاربری

۰۲
  • Next.js
  • React
  • TypeScript

داده و پیام

۰۳
  • SQL Server
  • PostgreSQL
  • Redis
  • RabbitMQ

استقرار و مسیریابی

۰۴
  • Docker
  • GitLab CI/CD
  • YARP
  • Eureka

لاگ و پایش

۰۵
  • Serilog
  • Elasticsearch
  • Seq
  • Prometheus
How We Work

از جلسهٔ شناخت تا راه‌اندازی

هر پروژه با شناخت سامانه‌ها و روال‌های فعلی سازمان شروع می‌شود و تا وقتی مانده‌ها و پرونده‌ها با سامانهٔ قبلی تطبیق نخورده‌اند، راه‌اندازی انجام نمی‌شود.

  1. ۰۱

    Discovery

    شناخت و تحلیل

    محصولات، فرایندها، چارت حساب و سامانه‌های فعلی سازمان را با هم مرور می‌کنیم و پیش از هر تنظیمی، فهرست تفاوت‌ها و تصمیم‌های باز را می‌نویسیم.

  2. ۰۲

    Configuration

    طراحی و پیکربندی

    دسته‌های سپرده، خطوط اعتباری، الگوهای سند، نقش‌ها و فرایندهای تأیید روی پلتفرم تعریف می‌شوند. اگر نیازی بیرون از قابلیت‌های موجود باشد، همین‌جا مشخص و برنامه‌ریزی می‌شود.

  3. ۰۳

    Migration & Testing

    انتقال داده و آزمون

    مانده‌ها و پرونده‌های باز از سامانهٔ قبلی منتقل و با گزارش‌های آن تطبیق داده می‌شوند. کاربران کلیدی سناریوهای روزمره را روی محیط آزمون اجرا می‌کنند.

  4. ۰۴

    Go-live & Support

    راه‌اندازی و پشتیبانی

    پس از تأیید تطبیق‌ها، سامانهٔ قبلی در روز قطع بسته می‌شود و کار روی دارا ادامه پیدا می‌کند. آموزش کاربران، مستندات و پشتیبانی پس از راه‌اندازی بخشی از هر پروژه است.

Get in Touch

معماری را با تیم فنی شما مرور کنیم

اگر تیم فنی سازمانتان می‌خواهد جزئیات معماری، استقرار و اتصال به سامانه‌های موجود را بررسی کند، جلسه‌ای فنی ترتیب می‌دهیم.