工作流引擎
1)为什么需要引擎
iGaming有许多端到端的程序:存款/提取,KYC/AML,投注/设置处理,向获奖者付款,反祖先调查,奖金活动,事件管理。工作流引擎使他们:- 可预见:明确步骤,状态,SLA和负责。
- 可靠性:等效性,恢复,补偿,截止日期。
- 透明:度量标准,跟踪,审计,监管机构的可证明性。
- 高效:自动化例程+人根据规则连接。
2)关键原则
Orchestrate the critical, choreograph the rest:关键链(付款/结论/设置)-集中编排;非关键事件-通过编舞(pub/sub)。
相似性无处不在:每个步骤都采用"idempotency_key"并存储结果。
SLA正念:步进时间和一般截止日期是固定的;按计时器升级。
Compensate, do n't rollback DB:用于外部效果-传奇/补偿。
人在环路:形式化的"狭窄门"(applues,4-eyes,SoD)。
Policy-as-Code:路由,优先级,分支条件-在策略中。
可观察性:每个任务都具有SLI/SLO,跟踪和审核。
3)主题领域模型
3.1基本实体
过程(过程):长寿编排(分钟/小时/天)。
任务(任务):原子操作(服务/人)。
Activity(活动):类型过程步骤(服务/人类/决策)。
信号/事件:外部事件(PSP webhook,KYC响应,用户操作)。
计时:截止日期,提醒,期刊。
Context:安全的流程负载(tenant, region, KYC-id, limits, risk-score)。
3.2个任务状态
`scheduled → running → (succeeded | failed | timed_out | cancelled | compensated)`
4)建筑模式
过程编排器:中央引擎存储状态、计时器、队列、路由。
执行者(工人):在域任务队列(Payments、KYC、Risk、Games)上签名的无状态服务。
传奇:每个"强"操作都有反向(补偿)。
Outbox/Inbox:与外部系统集成的"exactly-once"保修。
Command/Callback:任务由命令启动;结果-通过香肠/网络包。
功能闪光灯:动态分支选择(例如备用PSP)。
跟踪:所有呼叫的过程"trace_id"的共振。
5)保障和可持续性
任务执行+处理程序的平均水平。
带有挤压器和有限预算的retrai(按任务、按过程)。
超时:"task_timeout" <step SLA; "process_deadline"<监管期限。
滞后和后退:防暴。
巡回赛破发者:在"红色"成瘾状态下停靠。
Letter祖父(DLQ):用完整的上下文手动拆卸罕见的故障。
6)典型过程目录(iGaming)
1.押金:init → 3DS/auth → capture → ledger →奖金贷款→通知→反欺诈验证(异步)。
补偿:取消/cancel, storno,奖金回报。
2.提取资金:风险评估请求→ → 4眼→付款网关→付款登记册→通知。
补偿:取消输出,重新路由,冻结帐户。
3.KYC/AML:文档收集→提供商1 → fallback提供商2 →手动检查→ 结果/TTL。
4.投注/投注:保留→固定系数→确认→投注/结算→付款。
5.奖金活动:瞄准→发行优惠券→激活→预算监控→外卖/取消。
6.事件过程:细节→分类P1-P4 → var室→行动→关闭→后太平间。
7)步进设计(Task Spec)
等效密钥:'task_id'+业务密钥(例如'withdrawal_id')。
预言:启动条件(数据、限制、标志)。
操作:RPC/HTTP/gRPC/队列命令。
处理结果:成功/部分/错误/超时。
Retrai:策略(exp backoff+jitter),最大尝试次数。
补偿:反向行动/安全过渡。
审计:什么,谁/什么,何时和为什么;之前/之后。
8) Human-in-the-loop
内置的人类任务:支票清单,附件,提示(runbook),RACI。
SoD/4-eyes:不兼容的角色,两个P1/P2应用。
SLA:无所作为时的升级(计时器,小组变更,自动裁定/低风险的approve)。
通讯:通往所需渠道的通知,通过Comms Lead P1/P2状态页面。
9)SLA,优先级和规划师
优先事项:P1(立即)→ P2 → P3(背景)。
配额:特南特/地区/提供者;防护"捕获"队列。
截止日期:步骤和过程;→补偿/升级的截止日期。
期刊:cron过程(注册表关闭,奖金外卖,向监管机构报告)。
QoS类队列:实时(A)、操作(B)、分析(C)。
10)政策和DSL
策略即代码:用于分支,PSP路由,SoD要求,限制的Rego/YAML/JSON-DSL。
转化:v1→v2过程迁移而不中断活动实例。
金丝雀政策:新分支机构的一部分交通;在SLI上滚回。
11)数据、隐私和合规性
最大限度地减少上下文:在此过程中,只有正确的字段;PII-标记化。
Geo-aware存储:按司法管辖区(GDPR和本地规则)。
TTL和重建:不同于杂志、文物和文档。
导出:仅通过带加密、tiket和SoD的工作流。
审计:不可更改的逻辑(WORM),事件连通性。
12)可观察性和质量控制
SLI/SLO过程:完成百分比,平均/95持续时间,SLA违规。
任务指标:成功/错误/撤回/超时,队列中的年龄。
预告片:按步骤演唱,与支付/游戏事件相关。
Dashbords:Exec(SLA/错误预算,瓶颈),Ops(队列/ag,retrai,DLQ),Risk/Payments(PSP分支,Appruws)。
异常:持续时间和错误的STL/CUSUM/CPD;自动滑板/操纵器。
13)费用(FinOps工作流)
$/过程实例,$/任务,$/retray。
优化:低优先级步骤,事件聚合,长过程限制,旧数据清除。
配额: 按特南特启动/存储;showback/chargeback.
14)安全性
IAM/ABAC:按角色和属性(tenant/region/Circuity)访问进程/任务。
PAM/JIT:手动步骤的临时特权。
Webhook和查询的签名:HMAC/mTLS。
防御措施:PII出口中异常的自动单元;对敏感分支的双重控制(PSP路由,付款限制)。
15)整合
支付提供商(PSP): 命令/webhook, fallback路由。
KYC/AML:提供商,手动队列,监管截止日期。
游戏提供商:设置/报告,处理频道延迟。
事件平台/状态页面:自动创建/更新地图。
Release-gates:在"红色"流程中阻止危险版本。
16)模板目录(DSL片段)
Service task (HTTP):
yaml type: http id: payments_auth retry:
max_attempts: 5 backoff: exponential_jitter timeout: 2s idempotency_key: ${process. deposit_id}
on_fail: compensate: cancel_auth
Human task (4-eyes):
yaml type: human id: withdrawal_approve sod: true approvers: [Risk, Finance]
sla: 2h on_timeout: escalate: L2
Compensation saga:
yaml saga:
do: [reserve_funds, capture, ledger_post]
undo: [ledger_revert, refund_capture, release_funds]
17)实施路线图(8至12周)
奈德。1–2:
流程清单(存款/输出/KUS/设置),SLA目标,风险等级。
引擎/进近选择(排队+队列+状态存储)。
奈德。3–4:
MVP:作为两个传奇的存款和提款;等效处理程序;DLQ;基本指标/说明。
奈德。5–6:
结论的人类任务(4-eyes);PSP路由的策略即代码;计时器和截止日期。
奈德。7–8:
可观察性(SLO/dashbords),持续时间异常,自动滑行滑行者;与事件平台/状态页集成。
奈德。9–10:
合规性: 隐私/TTL/WORM审计;导出工作流;SoD/ABAC.
奈德。11–12:
成本优化,Peak Perf测试,Tabletop教学,模板库。
18) KPI/KRI功能
流程的SLA执行,MTTP(即流程时间)。
无人工参与自动完成的比例。
Retried/Task ratio, DLQ rate, Compensation rate.
阿普鲁瓦时间(人工任务)和延迟百分比。
费用:$/process, $/task, $/retray。
风险信号:输出/存款异常,SoD不匹配。
19)反模式
"全部"上的单个整体过程→难以扩展和更改。
无止境的Retrai →支付/行动。
没有截止日期/升级→ 取决于结论/CUS。
在没有TTL和伪装的过程中存储PII。
没有自动化的纸面补偿。
缺乏跟踪和审核→无法证明正确性。
底线
工作流引擎是业务运营的生命周期管理系统:关键路径编排,可持续性(相等,撤回,传奇),正式的人员参与,安全和合规政策,端到端可观察性和成本控制。这样的轮廓使iGaming平台在高峰时可预测,在事件中快速,对监管机构和合作伙伴具有说服力。