Технологийн стек¶
Экосистемийн бүх платформ нэг стек дээр ажиллана. Энэ нь санамсаргүй биш — хөгжүүлэгч нэг репо-оос нөгөө рүү шилжихэд дахин сурах зүйлгүй байх, аюулгүй байдлын засварыг нэг загвараар бүх системд тараах боломжийг өгдөг.
Gerege Nexus-ийн ялгаа
Gerege Nexus нь ижил стекийн (Go · chi · pgx ·
ORM-гүй · Next.js App Router) дээр ажилладаг ч гурван зүйлээр ялгаатай:
модульт монолит (модулиуд нэг бинарид компиллогдож, тенант бүрт апп стороор
хуваарилагдана), миграцаа goose-оор хийдэг, Redis-гүйгээр PostgreSQL дээр л
түшиглэдэг. Хувилбарууд нь Go 1.25 · Next.js 15.
Backend¶
| Бүрэлдэхүүн | Сонголт |
|---|---|
| Хэл | Go 1.26 |
| HTTP | стандарт сангийн net/http + go-chi/chi router |
| Өгөгдлийн сан | PostgreSQL — jackc/pgx (pgxpool), гар бичмэл SQL |
| Кэш / session | Redis |
| Архитектур | Clean Architecture — handler → usecase → repository → domain |
ORM яагаад байхгүй вэ?
Өгөгдлийн давхарга нь pgx дээр гар бичмэл SQL-ээр бичигддэг. Шалтгаан нь:
Postgres Row-Level Security (RLS), CTE, LISTEN/NOTIFY, JSONB зэрэг тухайн
санд гүн шингэсэн боломжуудыг ORM-ийн хийсвэрлэл дундуур биш, шууд ашиглах;
үүсэх query-г урьдчилан тааварлах шаардлагагүй болгох.
Clean Architecture-ийн хатуу дүрэм: back-import байхгүй. Бизнес цөм (domain,
usecase) нь web framework-ийг хэзээ ч import хийхгүй. Энэ нь HTTP давхаргыг
солиход бизнес логик хөндөгдөхгүй байхыг баталгаажуулна.
Frontend¶
| Бүрэлдэхүүн | Сонголт |
|---|---|
| Framework | Next.js 15/16, App Router |
| Загвар | BFF (Backend-for-Frontend) |
| Өгөгдлийн давхарга | TanStack Query |
BFF гэдэг нь юу гэсэн үг вэ: browser нь backend руу шууд ханддаггүй. Зөвхөн ижил домэйн дээрх Next.js route-уудтай ярина; тэдгээр нь server талаас backend руу прокси хийнэ.
Үр дүн: токен client JavaScript-д хэзээ ч хүрэхгүй — cookie session ашиглана, XSS нь токен хулгайлах вектор болохоо больдог. Дээрээс нь давхар CSRF хамгаалалт (тусгай header + origin шалгалт).
Mobile ба Desktop¶
| Платформ | Технологи |
|---|---|
| iOS | Swift, SPM SDK (GeregeSmartID) + брэнд бүрийн апп |
| Android | Kotlin / Jetpack Compose SDK |
| macOS | SwiftUI RP client + USB token kit |
| Windows | MSIX (гарын үсэгтэй) |
| Web RP | TypeScript SDK |
AI pipeline¶
Gemini дээр суурилсан, SDK-гүй REST client + function calling:
- текст ба дуут чат,
- STT (яриа → текст) ба TTS (текст → яриа),
- шууд орчуулга,
- pgvector мэдлэгийн сан — код болон баримтаас индексжүүлсэн,
- хэрэглэгчийн хэлээр хариулна; login шаардахгүй chat widget.
Давхаргат system prompt: кодод хатуу суулгасан суурь дүрэм (guardrail) + админаас
DB-ээр тохируулдаг хамрах хүрээ/заавар. Ингэснээр туслах нь зөвхөн заасан хүрээндээ
барина. search_knowledge tool нь хариултыг мэдлэгийн сангийн бодит өгөгдөлд
тулгуурлуулж, зохиомол хариулт өгөхөөс сэргийлнэ.
Крипто¶
Гарын үсгийн код нь Java/Spring эх системээс порт хийгдсэн тул wire түвшинд хоорондоо бүрэн нийцтэй байх ёстой. Үүнийг frozen golden vectors-оор түгжсэн:
- compressed SEC1 EC point сериалчлал,
- Java
BigInteger.toByteArray()семантик (тэмдэгт байтын зан төлөв).
Go сервер, iOS SDK, Android SDK гурвуулаа byte-identical үр дүн гаргах ёстой.
Golden vector-ийг бүү устга
golden.json файлуудыг дахин үүсгэх боломжгүй. Тэдгээр нь эх системтэй
нийцтэй байдлыг нотлох цорын ганц арга. Крипто кодод өөрчлөлт оруулахдаа
заавал эдгээр тестээр шалгана.
Дэд бүтэц¶
| Бүрэлдэхүүн | Сонголт |
|---|---|
| Контейнер | Docker Compose |
| CI/CD | GitHub Actions (self-hosted Windows/macOS runner-үүдтэй) |
| Edge | nginx — TLS termination, rate limit, reverse proxy |
| Гэрчилгээ | Let's Encrypt (certbot, webroot) |
| Баримт | MkDocs Material + mkdocs-static-i18n, олон хэлээр |
Дэлгэрэнгүйг Байршуулалт ба CI/CD хуудаснаас үзнэ үү.
Ажиглалт (observability)¶
- OpenTelemetry — тархсан trace,
- Prometheus — метрик (
/metrics), - Zap — структурт лог,
- Audit log — hash-chain холбоост, зөвхөн-нэмэх бүртгэл; зөвхөн админ уншина, бүрэн бүтэн байдлыг шалгах боломжтой.
Production-д хаалттай
/metrics ба /swagger нь production-д bearer token-оор хаалттай. Эдгээр
нь дотоод бүтцийг ил гаргадаг тул нээлттэй үлдээх нь мэдээлэл алдагдуулах эрсдэл.
Тест¶
- Unit тест — бизнес логик давхаргад,
- testcontainers интеграц тест — бодит PostgreSQL/Redis-тэй,
- golden vector тест — крипто нийцтэй байдалд.