Memphis.dev:面向后端开发者的事件与数据流平台(已转为公开维护)
Memphis.dev 是一个面向后端开发者设计的高可扩展、易上手的数据流平台,目标是让团队在 3 分钟内搭建生产级消息代理,并快速构建事件驱动与实时功能。它提供易用 UI、CLI 与多语言 SDK,具备数据级可观测性、带自动重投的死信队列、内嵌 Schema 管理(Schemaverse)、实时处理 Functions、图可视化与存储分层等能力,支持 Kubernetes 与 Docker Compose 部署。需要注意的是,来源页面明确说明 Memphis.dev 已不再由 Superstream 团队(原 Memphis.dev 团队)官方支持,并已向公众发布,许可证为 Memphis Business Source License 1.0。
社区作者 · zZz
它解决什么问题
项目定位
Memphis.dev 自称是“第一个为后端开发者设计的数据流平台”,用于比以往更快地构建事件驱动与实时功能。来源指出,在 Memphis 出现前,大规模事件的摄取与处理往往需要数月才能落地,是只有头部 20% 巨型公司才具备的能力;Memphis 希望让其余 80% 的团队也能快速、低成本地获得事件与数据流能力。【配图 10 为来源中标注的 memphis.dev 架构示意图】
重要状态说明
来源正文开头明确提示:Memphis.dev 已不再由 Superstream 团队(原 Memphis.dev 团队)官方支持,并已发布给公众。使用前需自行评估维护状态与风险。
核心特性(来源标注为 v1.4.4)
- 3 分钟内可用的生产级消息代理(Production-ready message broker)
- 易用的 UI、CLI 与 SDK
- 数据级可观测性(Data-level observability)
- 带自动消息重传的死信队列(Dead-Letter Queue with automatic message retransmit)
- Schemaverse:为生产数据提供内嵌 Schema 管理,支持 Protobuf / JSON / GraphQL / Avro
- 用于实时处理的 Functions
- 图可视化(Graph visualization)
- 存储分层(Storage tiering),来源声称可节省最高 96% 存储成本
- SDK:Node.JS、Go、Python、Typescript、NestJS、REST、.NET、Kotlin
- Kubernetes 原生(Kubernetes-native)
- 社区驱动(Community driven)
- 端到端可观测性:可“感受”生产者、消费者与记录,通过图总览快速分析系统健康状况
- 通过自动死信机制避免消息丢失
- 通过 Schema 提升数据质量
SDK 能力覆盖(来源表格摘要)
来源给出 Go / Python / JS / .NET / Java / Rust 六种 SDK 的功能对照表。共同支持的能力包括:连接、断开连接、Produce、Consume、Ack 消息、消息序号获取、检查 broker 是否已连接等。
差异点摘要:
- 创建/销毁 station、Retention 与 Retention 值、Storage 类型:Go、Python、JS、.NET、Rust 支持,Java 不支持
- 创建新 Schema、强制 Protobuf/JSON/GraphQL/Avro Schema、解绑 Schema、Schema 反序列化:Go、Python、JS、.NET 支持;Java 不支持;Rust 对 JSON Schema 标注为 🚧(WIP),其余标注为不支持
- 添加 headers、异步 produce、消息 ID、消息延迟、获取 Headers、销毁 Consumer:多数支持,Java 部分为不支持或 Partial,Rust 对消息 ID 标注为“?”
- Nack 消息、将消息发送到死信、获取消息发送时间:Go、Python、JS、.NET 支持,Java 与 Rust 不支持
- 消息处理器上下文:Go、Python、JS、.NET 支持,Java 不支持,Rust 标注为 “Not Applicable”
- Consumer prefetch:Go、.NET、Rust 支持,Python、JS、Java 不支持
- Fetch:Go、Python、JS、.NET、Java 支持,Rust 不支持
公开案例(来源列出)
- Dstny:使用 Memphis.dev 构建下一代内部通信
- Gastromatic:使用 Memphis.dev 同步数据
- KELA:实时网络威胁识别
- 处理数百万条 Discord 消息
适用对象
- 需要快速搭建事件驱动架构的后端开发者与平台工程师
- 希望以低门槛引入消息代理 / 数据流能力的中小团队
- 需要在 Kubernetes 上原生运行数据流组件的运维与基础设施团队
- 需要数据级可观测性、死信重投与 Schema 治理的数据平台团队
许可证要点
Memphis 采用 “Memphis Business Source License 1.0”,其基础来自 Apache 2.0。来源引用的主要差异是:被许可作品(i)只能作为你自己产品或服务的一部分使用,前提是该产品或服务不是消息代理或消息队列产品或服务;(ii)不得将作品作为“Service”来使用、提供、分发或对外可用。
“Service”指允许第三方(不含你方员工与代表你方行事的承包商)访问或使用该作品,或访问使用其大部分特性/功能的商业产品、托管或管理服务,例如 SaaS、PaaS、IaaS 或与许可方产品或服务竞争的其他类似服务。完整条款需查阅仓库 License 文件。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
来源提供两条官方快速开始路径,均为命令行方式。
准备环境
- 方式一:已安装并可用 Helm 的 Kubernetes 集群,且具备创建命名空间的权限。
- 方式二:已安装 Docker 与 Docker Compose CLI(可使用
docker compose子命令)。 - 需要联网以拉取 Helm 仓库或 docker-compose.yml 与相关镜像。
方式一:Kubernetes(Helm)
第一步,添加 Memphis Helm 仓库(来源使用了 --force-update 参数):
helm repo add memphis https://k8s.memphis.dev/charts/ --force-update第二步,安装 Memphis,并自动创建命名空间 memphis(来源将 release 命名为 my-memphis):
helm install my-memphis memphis/memphis --create-namespace --namespace memphis来源将这两条命令写成同一条 && 串联命令:
helm repo add memphis https://k8s.memphis.dev/charts/ --force-update && \
helm install my-memphis memphis/memphis --create-namespace --namespace memphis方式二:Docker Compose
第一步,下载官方 compose 文件到当前目录,命名为 docker-compose.yml:
curl -s https://memphisdev.github.io/memphis-docker/docker-compose.yml -o docker-compose.yml第二步,指定该文件并使用项目名 memphis 启动:
docker compose -f docker-compose.yml -p memphis up来源将这两条命令写为:
curl -s https://memphisdev.github.io/memphis-docker/docker-compose.yml -o docker-compose.yml && \
docker compose -f docker-compose.yml -p memphis up首次运行与后续使用
- 来源称可在 3 分钟内获得生产级消息代理。
- 部署后通过 UI、CLI 或 SDK 接入;SDK 覆盖 Node.JS、Go、Python、Typescript、NestJS、REST、.NET、Kotlin。
- 可按需创建 station、生产/消费消息、配置 Retention 与存储类型、创建并强制 Schema、使用死信队列与 Functions。
常见问题
- 官方支持状态:来源明确表示项目已不再由 Superstream 团队官方支持,遇到问题时社区渠道可能不再活跃,需自行评估。
- 遇到报错或缺陷:来源建议创建 bug report。
- 有新功能想法:来源建议提交 feature request;若已存在类似 issue,可留言 “+1” 并补充想法与设想。
- 其他问题、疑问与反馈:来源指向官方 Discord 服务器。
- 具体硬件规格、端口与生产调优参数在本页来源中未明确,属「待核验」。