Linm LINM F&B Lẩu Gà Ngon

Demo kỹ thuật · Quán lẩu gà · Linm MFE + .NET 8

5 services FnB
4 MFE
SignalR realtime
QR CK preset
ℹ️ Tài liệu & Demo UI là phiên bản demo (mẫu Lẩu Gà Ngon). Triển khai thực tế: Linm thiết kế và bổ sung theo design + logo nhận diện quý khách.

Tổng quan nền tảng

Lẩu Gà Ngon trên nền tảng Linm F&B — quán lẩu gà đa chi nhánh: khách QR order lẩu/topping/combo, bếp ra nồi realtime, thanh toán đa kênh với QR chuyển khoản preset số tiền.

Domain map

DomainAppAccess
order.*.linm.vnGuest PWAPublic — QR token
admin.*.linm.vnStaff MFE shellJWT staff
kitchen.*.linm.vnMàn bếpJWT kitchen
api.*.linm.vnAPI GatewayYARP / BFF

Core vs Modules

Core (Phase 1 · 1–2 tuần)

Go-live 1 CN · Order · Kitchen · Payment QR · Waiter · Table admin

Modules (Phase 2+)

Analytics · Feedback NPS · Franchise embed · OCR proof

Kiến trúc hệ thống

Linm.FnB.Bff

:9080

Guest session header · staff JWT proxy · file upload

Linm.FnB.Order

:5081 · fnb_order

Table QR · sessions · cart · service calls

Linm.FnB.Kitchen

:5082 · fnb_kitchen

Tickets · confirm prep · by table

Linm.FnB.Payment

:5083 · fnb_payment

QR CK tự gen · proof · đối soát tay

Linm.FnB.Admin

:5084 · fnb_admin

Branches · menu · tables · payment accounts

Linm.Notification

:5002

TableSessionHub · KitchenHub

MFE Packages

PackageRouteUser
@linm/fnb-guest/t/{tableToken}Guest
@linm/fnb-kitchen/kitchenKitchen
@linm/fnb-admin/admin/*Manager
@linm/fnb-reports/reportsOwner

Luồng Order & Thanh toán

Thành phần

📱 Guest PWA
🔀 FnB BFF
📋 Order Service
👨‍🍳 Kitchen Service
💳 Payment Service
⚡ SignalR Hub
🧑‍🍳 Waiter MFE
🧑‍💼 Cashier Confirm
// Click Next to start
0/0

Event System

LINM.Platform.Eventing + SignalR for realtime UI

EventProducerConsumer
FnB.OrderLineAddedOrderKitchen, SignalR
FnB.KitchenTicketConfirmedKitchenSignalR → Guest
FnB.PaymentRequestedOrderPayment
FnB.ServiceRequestCreatedOrder/GuestSignalR → Waiter
FnB.OrderConfirmedByWaiterWaiterKitchen, SignalR
FnB.PaymentProofUploadedPaymentSignalR → Cashier
FnB.PaymentConfirmedPaymentOrder, Feedback UI
FnB.StaffFeedbackSubmittedGuestManager ratings (60/40 ca)
// Worker: OrderLineAdded handler
public async Task Handle(FnBOrderLineAdded e, CancellationToken ct)
{
    await _kitchen.UpsertTicketAsync(e.SessionId, e.Lines, ct);
    await _hub.Clients.Group(e.BranchId)
        .SendAsync("ticketUpdated", e.SessionId, ct);
}

Bảo mật & Rate limit

L1 Edge — TLS · WAF · rate limit · CORS
L2 App — Staff JWT · Guest table token · branch scope
L3 Data — Tenant isolation · audit · PII mask

Rate limits

Guest menu read120/min
Add order line30/min
Payment proof upload5/10min
TokenScopeTTL
Staff JWTcompany_id, roles, branch_ids8h
Guest sessiontableToken, sessionId4h idle
Table QRsigned tableId + branchIdrotatable