【独立开发日记】MQ端到端类型安全

独立开发者,全栈TypeScript,前端Tanstack、后端hono

之前一直用 amqplib 这个库进行RabbitMQ操作,但是他没有像 tRPC 那样实现端到端类型安全,经常会遇到:

producer改动了routing、传输数据结构,consumer就得过一遍集成测试,看看哪里有没有受到影响,不仅麻烦也导致mq里经常一大堆垃圾数据。

其实本质是类型安全的问题,如果消费者可以实时推断生产者的类型,就完美解决这个问题,啃了tRPC的源码后学习了他的设计理念,最终实现了端到端类型安全。

这种契约耦合是必须的,起到了约束、保护的作用,换取了强大的类型安全和开发效率,带来的收益有:

  • 防止拼写错误:user.creatd 在编译时就会报错。
  • 确保了数据结构的统一
  • 强制了契约变更的可见性,生产者修改了契约,共用的契约迫使消费者进行协调更新
  • 契约就是活文档(数据结构,routing、exchange、queue)
相关推荐
木风小助理3 分钟前
QPS监控:SpringBoot应用性能监控的必要性与实践
java·spring boot·后端
小土豆_77712 分钟前
Owl 2.8.1 核心语法速查表(新手专用)
前端·odoo/owl
我是伪码农15 分钟前
放大镜效果
javascript
董世昌4115 分钟前
js的数据类型有几类?一共有几种?
开发语言·javascript·ecmascript
firstacui18 分钟前
LVS三种模式搭建
前端·chrome
wanzhong233318 分钟前
开发日记13-响应式变量
开发语言·前端·javascript·vue
qq_124987075318 分钟前
基于Spring Boot的心理咨询预约微信小程序(源码+论文+部署+安装)
java·spring boot·后端·spring·微信小程序·小程序·毕业设计
代码游侠21 分钟前
学习笔记——文件传输工具配置与Makefile详解
运维·前端·arm开发·笔记·学习
彭于晏Yan23 分钟前
SpringBoot集成Druid连接多个数据源
java·spring boot·后端
踢球的打工仔26 分钟前
typescript-类的静态属性和静态方法
前端·javascript·typescript