Definition
数字产品护照平台的规模由什么决定?
两种彼此独立的负载。读取量随公开扫描而波动,具有突发性且难以预测,但由于公开层级对所有调用方完全相同,绝大部分可以缓存。写入量随供应链事件而来,稳定且由机器生成。两者分别评估规模、分别扩容。
The consequence for planning is that catalogue size is a poor predictor of either. Event volume tracks how much your products move; read volume tracks how much attention they receive.
负载形态
为什么一套系统无法同时服务两者
| Characteristic | Passport reads | Event writes |
|---|---|---|
| Triggered by | A person scanning a product | A machine recording a step |
| Shape | Bursty and unpredictable | Steady and forecastable |
| Cacheable | The public tier, almost entirely | Not at all — every write is new |
| Latency need | A person is waiting | A queue can absorb it |
| Grows with | Attention and campaign activity | Physical movement of goods |
| Failure impact | A consumer sees nothing | History develops a gap |
设计
这一划分带来什么结果
已缓存的公开层级
每个匿名调用方收到的响应完全相同,因此由缓存提供服务。
按请求授予的受限层级
依赖凭证的响应实时解析 —— 这是代价较高的路径,也是使用频率最低的路径。
彼此独立地扩展
扫描突发流量不得拖慢数据摄取;批量导入也不得拖慢解析器。
仅追加的事件日志
写入永远不会与更新争用,因为事件是追加的,而不是被修改的。
批量摄取
历史事件回补走独立通道,不经过实时写入路径。
按对象查询
历史按标识符检索 —— 这正是审计与召回实际使用的访问方式。
答疑
常见问题
护照平台的负载究竟由什么驱动
两件互不相干的事。读取随扫描而来,扫描是公开的、突发的、难以预测的——一件产品若在节目中露出,一小时内产生的读取量可能超过此前整整一年。写入随供应链事件而来,由机器生成且平稳。为其中一项估算容量,对另一项没有任何参考价值。
为什么读取与写入是彼此分离的系统?
因为扫描突发流量不得拖慢事件摄取,而事件的批量导入也不得拖慢消费者正在等待的解析器。解析器返回的是基本静态、可缓存的响应;事件存储则是一份写入密集、按对象标识查询的日志。这是两类不同的问题。
事件量会随产品数量增长吗?
它随流转量增长,而不是随目录规模增长。一个托盘穿过配送网络所产生的事件,多过一千件静置在仓库里的商品。按 SKU 数量估算的组织,往往在两个方向上都会感到意外。
如何让护照读取保持快速?
公开层级可缓存,因为它对每个调用方的响应相同且很少变化。受限层级则按请求解析,因为答案取决于所出示的凭证——于是开销大的路径恰恰是走得最少的那条,这个方向是对的。
你们的可用性承诺是什么?
这些内容属于服务协议,而不属于营销页面,我们会在采购过程中形成书面约定。我们刻意不在此发布可用性数值:一个背后既无合同也无状态页支撑的数字算不上承诺,评估我们的工程师只会把它当作噪音。