رفتن به محتوا
همه پروژه‌ها

fintech · backend · web · real-time

آنگلد — پلتفرم معامله‌ی زنده‌ی طلا

پلتفرم معامله‌ی بلادرنگ طلا به تومان: موتور معاملاتی Go با سفارش لحظه‌ای و شرطی، حد سود و ضرر، بستن خودکار و کیف پول، با پخش زنده به وب‌اپ Next.js 16 از طریق WebSocket.

نقش
تنها توسعه‌دهنده — بک‌اند، موتور معاملات، وب و پنل ادمین
بازه زمانی
فروردین ۱۴۰۳ – اکنون
کارفرما
Ongold
وضعیت
فعال
  • Go
  • Gin
  • PostgreSQL
  • Redis
  • WebSocket
  • Next.js
  • TypeScript
  • React
  • JWT
  • Apache
داشبورد معاملاتی آنگلد
  • 1

    توسعه‌دهنده

  • Real-time

    به‌روزرسانی قیمت

  • Spot · Pending · SL/TP

    نوع سفارش

مسئله

آنگلد به پلتفرمی نیاز داشت که کاربران بتوانند طلا را به تومان و به‌صورت لحظه‌ای خرید و فروش کنند؛ با همان ابزارهایی که معامله‌گران از پلتفرم‌های فارکس انتظار دارند: سفارش شرطی، حد ضرر و حد سود، چند لات و محافظت خودکار وقتی پرتفوی به زیان بحرانی می‌رسد. پای پول در میان است، پس درستی در شرایط هم‌زمانی از همه‌چیز مهم‌تر بود.

چه چیزی ساختم

تنها توسعه‌دهنده‌ی پروژه بودم و همه‌چیز را از ابتدا تا انتها ساختم:

  • بک‌اند: یک سرویس یکپارچه با Go و فریم‌ورک Gin و اسکیمای PostgreSQL برای کاربران، کیف پول، سفارش‌ها، تراکنش‌ها و معرفی‌ها.
  • موتور معاملات: اجرای لحظه‌ای و شرطی، حد سود و ضرر، بستن خودکار پرتفوی و پوزیشن‌های چند لات.
  • لایه‌ی بلادرنگ: سرور WebSocket که قیمت و وضعیت سفارش را به همه‌ی کاربران متصل می‌فرستد.
  • کیف پول و معرفی: واریز، برداشت، مدیریت موجودی و محاسبه‌ی پورسانت معرفی.
  • وب‌اپ: Next.js 16 و TypeScript، کاملاً واکنش‌گرا.
  • پنل ادمین: داشبورد React برای مدیریت کاربران و سفارش‌ها.

معماری

Price feed ──► Go service ──► Redis (latest prices, locks)
                  │                     │
                  ├── PostgreSQL ◄──────┘  orders · wallets · transactions
                  │
                  └── WebSocket hub ──► Next.js web app / admin

هم‌زمانی و پول

هر تغییر روی سفارش، قبل از دست زدن به PostgreSQL یک قفل کوتاه‌مدت Redis روی پرتفوی کاربر می‌گیرد و به‌روزرسانی کیف پول و وضعیت سفارش در یک تراکنش پایگاه داده انجام می‌شود. این ترکیب جلوی اجرای دوباره‌ی سفارش و موجودی منفی را می‌گیرد؛ حتی وقتی تغییر قیمت، اقدام کاربر و بستن خودکار هم‌زمان رخ می‌دهند.

نتیجه

  • فعال در محیط واقعی، مستقر روی لینوکس پشت Apache، همراه با نگهداری و پایش مداوم.
  • قیمت و وضعیت سفارش زنده برای همه‌ی کاربران، بدون polling.
  • کدبیسی که یک مهندس به‌تنهایی می‌تواند آن را بفهمد و توسعه دهد.

  • ثبت سفارش شرطی با حد ضرر و حد سود.

  • داشبورد ادمین React برای کاربران و سفارش‌ها.

گفت‌وگو کنیم

هم‌زمان روی چند پروژه‌ی محدود کار می‌کنم؛ از پروژه‌تان بگویید.