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

Invisible,运营效率和自动化的解决方案
在过去一年中,许多公司越来越清楚,仅仅通过数字化来实现业务转型是不够的。企业需要的是建立一个专注于运营效率和自动化的数字化转型战略。这对于提高生产力和效率,以及在需要不断提高客户体验水平的市场中保持竞争力至关重要。
在Invisible之前,企业依靠 BPO(业务流程外包)来实现运营效率,依靠 RPA(机器人流程自动化)和其他工具来实现自动化。
然而,这两种解决方案本身都不足以解决问题。每个企业都有定制的复杂业务流程,许多 RPA 的一刀切方法无法解决这些问题。同样,外包给 BPO 可以避免为内部资源创建新的工作流程、培训计划等,但这只适用于支持相对简单、大规模的工业流程。
Invisible 通过工作共享解决了这个问题。它结合了 BPO 和 RPA 的最佳元素,同时又不失人类自由裁量权这一关键组成部分。
Invisible 的基因中就含有卓越运营和自动化。我们正在将知识工作工业化,将一切分解为最小的组件,将一切转化为流程,构建工具,并调整激励机制。这是通过 Invisible 的数字装配线完成的:客户可以在 Invisible 在线门户上选择预构建的业务流程,或者使用我们提供的可用“构建块”构建自己的自定义流程。
Scott Downes,Invisible 首席技术官 选择 Prisma 提升内部效率
Invisible 通过确保其内部遵循相同的原则,为其客户提供运营效率和自动化:他们选择能让开发人员节省时间,同时又能使其技术栈面向未来的技术。
这就是为什么高级软件工程师Pieter Venter在设计 Invisible 的新技术栈时选择了 Prisma。当 Pieter 加入 Invisible 并评估其技术栈时,他认为需要进行全面重构,为未来几年的平台奠定坚实基础。
使用 Prisma 将使 Invisible 团队能够
- 快速发展其模式,根据市场需求添加新功能和流程
- 在编写后端所需的自定义逻辑时具有灵活性
- 对所使用的工具充满信心,无需担心持续维护和故障排除
最初,Invisible 使用 Sequelize,它提供了强大的 TypeScript 类型,但需要大量的样板代码来创建其模型。此外,类型定义和类型不会根据查询选择进行更新。他们还调查了 Hasura,但它最终未能满足他们的期望,缺乏后端自定义逻辑所需的灵活性。
Prisma 是理想的解决方案
- 它专为 GraphQL 实现而构建
- 它使用基于查询选择的推断类型在客户端提供自动生成的类型
- 其流畅的 API 对于开发人员来说非常容易学习,从而实现了新的现代查询引擎开发
在实时应用程序中从 Sequelize 迁移到 Prisma
对于 Invisible 来说,从 Sequelize 迁移到 Prisma 是轻松无痛的。
该团队创建了一个 Prisma 客户端以及他们的 Sequelize 客户端,该客户端用于托管在 Heroku 上的 API 服务器单体。他们使用 Prisma 内省基于他们的数据库构建了一个新的 Prisma 文件,该文件最终与他们以前的模式非常相似。
与此同时,他们还创建了一个新的无服务器 GraphQL API(使用 Postgres 托管在 Vercel 上),该 API 将只使用 Prisma,并且没有 Sequelize 的包袱。简单的数据模型和业务逻辑被快速轻松地迁移到新的后端。
高容量请求也已移至新的无服务器函数,以减少旧 API 服务器的旧 Heroku dynos 上的负载,并允许他们在 Heroku 上进行扩展。
目前,所有新的核心数据模型都在新仓库的 Prisma 模式和新的 Postgres 数据库中构建,任何剩余的旧查询都在慢慢从 Sequelize 和 Heroku 中迁移,并计划在一年内完全弃用它们。
这种渐进式方法使 Invisible 能够继续拥有数百名代理商在全球 24/7 不间断地无缝工作,并确保他们的客户没有停机时间。
虽然他们可以选择在一周内完成迁移,但他们决定逐步进行,以便他们可以继续开发新功能并利用 Prisma 更快地发布它们。
Invisible 的技术栈
Invisible 在所有地方都使用 TypeScript,这使他们能够从数据库到前端拥有 100% 类型安全的代码,而无需维护类型。他们的堆栈由几个 React 应用程序(NextJS)和 Nodejs 后端 API 服务器组成。他们将 Prisma 与 Postgres 中的高度关系数据模型一起使用。
他们当前的技术栈由以下部分组成
Prisma 在类型安全的 ORM 方面的方法与 Sequelize 甚至 TypeORM 相比都达到了一个新的水平。tRPC + Prisma 组合非常容易上手!它提供了完全的类型安全,无需任何代码生成或混乱的类型和接口来编写和维护。Prisma 生成类型,tRPC 使用它们并向下传递,我们甚至不需要维护任何 API 服务器。使用 Nextjs 和 Vercel,我们还能以通常运行我们自己的有状态服务器所需成本的一小部分获得出色的 DX 和 UX。
Pieter Venter,Invisible 高级软件工程师 目前,Invisible 团队正致力于将 Heroku 的单体 API 重构为一组托管在 Vercel 上的无服务器函数。此外,他们还用 tRPC 取代了 GraphQL 和 Apollo——tRPC 是 React Query 的一个轻量级封装,处理客户端和服务器的获取逻辑。这极大地简化了他们的技术栈,并将加快功能开发和更可靠的数据库增量更改。
Prisma 与他们新的微服务架构无缝协作,并已被抽象成一个自己的库,可以在需要数据的服务之间共享。Prisma 会根据无服务器函数的需求自动打开和关闭数据库连接。查看 世界上最糟糕的泳池派对:Prisma 的连接管理——Martina Welander 关于该主题的演讲!

Invisible 的工程文化
Invisible 真正接受了所有部门,尤其是工程团队的“主人翁”文化。以下是 Invisible 首席技术官Scott Downes对团队内部共同责任感的描述:
我们所有的合作伙伴(“员工”一词是被禁止的!)都同意一种透明、任人唯贤的模式,每个人都会随着时间的推移获得有意义的股权,我们的薪水和奖金直接与业务绩效挂钩。每个人的工作都直接影响并塑造公司的方向及其成功。
Scott Downes,Invisible 首席技术官 这在 Pieter 的工作中尤为明显:Pieter 独自评估了以前技术栈的缺陷,并负责设计了一个新的、可扩展且面向未来的解决方案。
如果您想加入完全远程的 Invisible 团队,请在此处查看所有空缺职位这里。
结论
Invisible 的收入在过去一年中翻了两番,因为越来越多的公司意识到提高效率和自动化的重要性。依靠 Prisma 这样的技术使他们能够保持敏捷和可扩展性,并确保他们能够满足客户不断增长的需求。
采用 Prisma 使 Invisible 能够比以前更快地部署更改,确保他们能够继续提高团队的效率,同时降低客户的成本。
要了解 Prisma 如何帮助您的团队提高生产力的更多信息,请加入Prisma Slack 社区。
不要错过下一篇文章!
订阅 Prisma 新闻通讯