# 已知局限 · gotick 文档

> 这些都摊开写在这儿，没藏在 issue 里。如果有一条对你是致命的，现在发现比以后迁走便宜得多。

文档

- [01快速上手](/docs.md)
- [02重放模型](/docs/model.md)
- [03底层实现](/docs/internals.md)
- [04核心 API](/docs/primitives.md)
- [05外部控制](/docs/control.md)
- [06示例](/docs/examples.md)
- [07运维与排查](/docs/operations.md)
- [08已知局限](/docs/limits.md)

# 用它之前该知道的几条局限

这些都摊开写在这儿，没藏在 issue 里。如果有一条对你是致命的，现在发现比以后迁走便宜得多。

重放在代码里是看不见的

你的函数会被从头执行一遍又一遍，但语法上没有任何提示。一句随手的 time.Now()、一次顺手的查库，就能让两遍执行走进不同分支，而且没有任何东西替你拦下来。

不适合高吞吐和很长的历史

每一轮都要把整个函数重跑一次。几十步很轻松，几千步就疼了。代价随流程的长度涨，不只随宽度涨。

没有流程版本管理

一个流程要跑三天，你中途发了个版加了一步，在飞的实例就直接撞进新代码里。Temporal 用 patch API 解决这件事，gotick 还没有。

WithTimeout 还没实现

流程级的 WithTimeout 在 API 里存在，也能传进去，但目前没有任何地方读它——流程不会自己超时。需要一个截止时间的话，用带超时的 WaitForSignal，或者显式 Sleep。

只支持 Go，而且还年轻

没有跨语言 SDK，也没有在 Temporal 那种规模上验证过。如果一个流程出错要赔钱，先把这件事想清楚。

## 这里还缺什么？

如果你读到这儿，本来想用，但差一步没用上，那一步就是你能告诉我们的最有用的东西，比任何路线图都实在。

[提个 issue](https://github.com/zbysir/gotick/issues)

[← 上一篇\
\
运维与排查](/docs/operations.md)

> 全站页面清单：[/llms.txt](/llms.txt)
