Invisible 是一家 B2B 生产力初创公司,允许其用户通过 Worksharing 自动化和外包任何复杂的工作流程或业务流程。Prisma 在帮助 Invisible 确保其技术栈面向未来以及支持其扩展方面发挥了至关重要的作用。

Invisible,运营效率和自动化的解决方案
在过去一年中,许多公司越来越清楚地认识到,仅仅实现数字化以实现业务转型是不够的。企业需要建立一个以运营效率和自动化为中心的数字化转型战略。这对于提高生产力和效率,并在一个需要不断提升客户体验的市场中保持竞争力至关重要。
在 Invisible 之前,企业依靠 BPO(业务流程外包)来实现运营效率,以及 RPA(机器人流程自动化)和其他工具来实现自动化。
然而,就其本身而言,这两种解决方案都不够充分。每个企业都有定制且复杂的业务流程,许多 RPA 的一刀切方法无法解决这些问题。同样,外包给 BPO 可能避免了为内部资源创建新的工作流程、培训计划等的需要,但这仅适用于支持相对简单、大规模的工业流程。
Invisible 通过 Worksharing 解决了这个问题。它结合了 BPO 和 RPA 的最佳要素,同时又保留了人工判断的关键组成部分。
Invisible 的 DNA 中蕴含着卓越的运营和自动化。我们正在将知识工作产业化,将一切分解为最小的组成部分,将一切转化为流程,构建工具,并协调激励机制。这是通过 Invisible 的 Digital Assembly Line 完成的:客户可以在 Invisible 在线门户上选择预构建的业务流程,或者使用我们提供的可用“构建块”构建自己的自定义流程。

选择 Prisma 来驱动内部效率
Invisible 通过确保其内部遵循相同的原则来为其客户确保运营效率和自动化:他们选择能够让其开发人员节省时间,同时又能使其技术栈面向未来的技术。
高级软件工程师 Pieter Venter 在为 Invisible 设计新的技术栈时选择了 Prisma。当 Pieter 加入 Invisible 并评估其技术栈时,他认为需要进行全面的重构,以便为平台未来几年的发展打下坚实的基础。
使用 Prisma 将使 Invisible 团队能够
- 根据市场需求快速迭代其模式,添加新功能和流程
- 在编写后端所需的自定义逻辑方面具有灵活性
- 对所使用的工具充满信心,无需担心持续的维护和故障排除
最初,Invisible 使用了 Sequelize,它为他们提供了强大的 TypeScript 类型,但需要大量的样板代码来创建他们的模型。此外,类型定义和类型不会根据查询选择进行更新。他们还研究了 Hasura,但它最终未能达到他们的期望,缺乏后端自定义逻辑所需的灵活性。
Prisma 是理想的解决方案
- 它专为 GraphQL 实现而构建
- 它在客户端中提供自动生成的类型,使用基于查询选择的推断类型
- 流畅的 API 非常容易让开发人员学习,从而可以进行新的现代查询引擎开发
在生产环境应用中从 Sequelize 迁移到 Prisma
对于 Invisible 而言,从 Sequelize 迁移到 Prisma 的过程是轻松且毫不费力的。
团队在他们的 Sequelize 客户端旁边创建了一个 Prisma 客户端,该客户端用于 Heroku 上托管的 API 服务器单体应用中。他们使用 Prisma introspect 基于他们的数据库构建了一个新的 Prisma 文件,该文件最终与他们之前的模式非常相似。
与此同时,他们还创建了一个新的无服务器 GraphQL API(使用 Postgres 托管在 Vercel 上),该 API 将仅使用 Prisma 且不包含 Sequelize 的负担。简单的数据模型和业务逻辑被快速轻松地迁移到新的后端。
高流量请求也被迁移到新的无服务器功能中,以减少旧 API 服务器的旧 Heroku dyno 上的负载,并允许他们在 Heroku 上缩减规模。
目前,所有新的核心数据模型都在新代码库的 Prisma 模式和新的 Postgres 数据库中构建,任何剩余的旧查询都在缓慢地从 Sequelize 和 Heroku 迁移出来,目标是在年内完全弃用它们。
这种渐进式的方法使 Invisible 能够继续让数百名代理在全球各地 24/7 全天候无缝且不间断地工作,并确保他们的客户没有遇到任何停机时间。
虽然他们可以选择在一周内完成迁移,但他们决定逐步进行,以便他们能够继续开发新功能并利用 Prisma 更快地交付这些功能。
Invisible 的技术栈
Invisible 在所有地方都使用 TypeScript,这使他们能够拥有从数据库直接到前端的 100% 类型安全的代码,而无需维护类型。他们的技术栈由一些 React 应用程序 (NextJS) 和 Nodejs 后端 API 服务器组成。他们将 Prisma 与 Postgres 中高度关系型数据模型结合使用。
他们当前的技术栈由以下部分组成
与 Sequelize 甚至 TypeORM 相比,Prisma 的类型安全 ORM 方法更胜一筹。tRPC + Prisma 的组合非常容易上手!它提供了完全的类型安全性,无需任何代码生成或繁琐的类型和接口来编写和维护。Prisma 生成类型,tRPC 消耗它们并将它们传递下去,我们甚至不需要维护任何 API 服务器。借助 Nextjs 和 Vercel,我们还可以以通常运行我们自己的有状态服务器所需成本的一小部分获得出色的 DX 和 UX。

目前,Invisible 团队正专注于将 Heroku 单体 API 重构为托管在 Vercel 上的无服务器功能集合。此外,他们已将 GraphQL 和 Apollo 替换为 tRPC - React Query 的一个轻量级封装,用于处理客户端和服务器获取逻辑。这极大地简化了他们的技术栈,并将允许更快的特性开发和更可靠的数据库增量更改。
Prisma 与他们新的微服务架构无缝协作,并已被抽象到其自己的库中,该库可以在需要数据的服务之间共享。Prisma 会根据无服务器功能的需要自动打开和关闭数据库连接。请观看 Martina Welander 关于此主题的演讲 - 《世界上最糟糕的泳池派对:Prisma 的连接管理》!
Invisible 的工程文化
Invisible 真正拥抱了跨部门的所有权文化,尤其是工程团队。Invisible 首席技术官 Scott Downes 这样描述团队内部的共同责任感
我们所有的合作伙伴(禁用“员工”一词!)都认同透明、任人唯贤的模式,在这种模式下,每个人都会随着时间的推移获得有意义的股权,并且我们的工资和奖金直接与业务绩效挂钩。每个人的工作都直接影响和塑造公司的方向及其成功。

当审视 Pieter 的工作时,这一点尤为明显:Pieter 独自评估了先前技术栈中的缺陷,并负责设计新的、可扩展且面向未来的解决方案。
如果您想加入完全远程的 Invisible 团队,请在此处查看所有空缺职位 here。
结论
过去一年,随着越来越多的公司意识到提高效率和自动化的重要性,Invisible 的收入翻了两番。依靠 Prisma 等技术使他们能够保持敏捷性和可扩展性,并确保他们能够满足客户不断增长的需求。
采用 Prisma 使 Invisible 能够比以前更快地部署更改,从而确保他们可以继续提高团队的效率,同时降低客户的成本。
要了解有关 Prisma 如何帮助您的团队提高生产力的更多信息,请加入 Prisma Slack 社区。
不要错过下一篇文章!
注册 Prisma 新闻通讯