Invisible は、ユーザーがあらゆる複雑なワークフローやビジネスプロセスを ワークシェアリングを通じて自動化およびアウトソーシングできる B2B 生産性スタートアップです。Prisma は、Invisible が将来を見据えた技術スタックを構築し、その規模をサポートする上で重要な役割を果たしました。

Invisible、業務効率と自動化のためのソリューション
昨年、多くの企業にとって、ビジネス変革を達成するために単にデジタル化するだけでは不十分であることが明らかになりました。企業に必要なのは、業務効率と自動化に焦点を当てたデジタルトランスフォーメーション戦略を確立することです。これは、生産性と効率の向上を達成し、顧客体験のレベルがますます高まる市場で競争力を維持するために不可欠です。
Invisible 以前は、企業は業務効率のために BPO (ビジネスプロセスアウトソーシング) に、自動化のために RPA (ロボティックプロセスオートメーション) やその他のツールに頼っていました。
しかし、これらのソリューションはそれだけでは不十分です。すべての企業には、多くの RPA の画一的なアプローチでは対応できない、カスタムで複雑なビジネスプロセスがあります。同様に、BPO へのアウトソーシングは、社内リソース向けに新しいワークフローやトレーニングプログラムなどを作成する必要性を回避できるかもしれませんが、比較的単純で大規模な産業プロセスをサポートする場合にのみ理想的です。
Invisible は、ワークシェアリングによってこの問題を解決しました。これは、BPO と RPA の最良の要素を組み合わせたものであり、人間の裁量という重要な要素を失うことはありません。
Invisible は、業務効率と自動化を DNA に持っています。私たちはナレッジワークを工業化し、すべてを最小のコンポーネントに分解し、すべてをプロセスに変え、ツールを構築し、インセンティブを調整しています。これは、Invisible のデジタルアセンブリラインを通じて行われます。顧客は、Invisible オンラインポータルで事前に構築されたビジネスプロセスを選択したり、当社が提供する利用可能な「ビルディングブロック」を使用して独自のカスタムプロセスを構築したりできます。

内部効率を推進するために Prisma を選択
Invisible は、顧客に業務効率と自動化を保証するために、社内でも同じ原則に従うことを保証しています。つまり、開発者が時間を節約し、同時に技術スタックを将来に備えることができるテクノロジーを選択します。
これが、Pieter Venter (シニアソフトウェアエンジニア) が、Invisible の新しい技術スタックを設計する際に Prisma を選択した理由です。Pieter が Invisible に入社し、その技術スタックを評価したとき、彼はプラットフォームの確固たる基盤を今後数年間構築するには、完全なリファクタリングが必要であると判断しました。
Prisma を使用することで、Invisible チームは次のことが可能になります。
- 迅速な進化 市場の需要に応じて、スキーマを進化させ、新機能とプロセスを追加します。
- バックエンドに必要なカスタムロジックを記述する際の柔軟性
- 使用するツールに自信を持ち、絶え間ないメンテナンスやトラブルシューティングを心配する必要がないこと
当初、Invisible は Sequelize を使用していました。Sequelize は強力な TypeScript 型を提供していましたが、モデルを作成するには多くのボイラープレートコードが必要でした。また、型定義と型は、クエリの選択に応じて更新されませんでした。Hasura も検討しましたが、最終的にはバックエンドのカスタムロジックに必要な柔軟性が不足しており、期待に応えられませんでした。
Prisma は理想的なソリューションでした。
- GraphQL 実装向けに構築されています。
- クエリの選択に基づいて推論された型を使用して、クライアントで自動生成された型を提供します。
- Fluent API は開発者が習得しやすく、新しい最新のクエリエンジンの開発を可能にします。
ライブアプリケーションでの Sequelize から Prisma への移行
Invisible にとって、Sequelize から Prisma への移行は苦痛がなく、容易でした。
チームは、Heroku でホストされている API サーバーモノリスで使用される Sequelize クライアントと並行して Prisma クライアントを作成しました。Prisma introspect を使用して、データベースに基づいて新しい Prisma ファイルを構築しました。これは最終的に以前のスキーマと非常によく似ていました。
同時に、Prisma のみを使用し、Sequelize の遺産を持たない新しいサーバーレス GraphQL API (Postgres を使用して Vercel でホスト) も作成しました。単純なデータモデルとビジネスロジックは、新しいバックエンドに迅速かつ簡単に移行されました。
古い API サーバーの古い Heroku dyno の負荷を軽減し、Heroku でスケールダウンできるように、大量のリクエストも新しいサーバーレス機能に移行されました。
現在、すべての新しいコアデータモデルは、新しいリポジトリの Prisma スキーマと新しい Postgres データベースで構築されており、残りの古いクエリは Sequelize と Heroku から徐々に移行されており、年内に完全に非推奨にする予定です。
この段階的なアプローチにより、Invisible は世界中で 24 時間年中無休で働く数百のエージェントがシームレスに中断なく作業を継続できるようにし、顧客にダウンタイムが発生しないようにすることができました。
1 週間で移行を完了することもできましたが、新機能の開発を継続し、Prisma を活用してより迅速に出荷できるように、段階的に進めることにしました。
Invisible の技術スタック
Invisible は、データベースからフロントエンドまで 100% タイプセーフなコードを持つことができるように、あらゆる場所で TypeScript を使用しており、型を維持する必要はありません。彼らのスタックは、いくつかの React アプリケーション (NextJS) と Nodejs バックエンド API サーバーで構成されています。Postgres の高度なリレーショナルデータモデルで Prisma を使用しています。
現在のスタックは以下で構成されています。
Prisma のタイプセーフ ORM に対するアプローチは、Sequelize や TypeORM と比較してもネクストレベルです。tRPC + Prisma の組み合わせは、非常に簡単に始められます。コード生成や面倒な型やインターフェースを記述および維持することなく、完全なタイプセーフを提供します。Prisma は型を生成し、tRPC はそれらを消費して渡します。API サーバーを維持する必要さえありません。Nextjs と Vercel を使用すると、通常、独自のステートフルサーバーを実行するために支払う必要のあるコストのほんの一部で、優れた DX と UX も得られます。

現在、Invisible チームは、Heroku モノリシック API を Vercel でホストされているサーバーレス関数のコレクションにリファクタリングすることに注力しています。さらに、GraphQL と Apollo を tRPC に置き換えました。tRPC は、クライアントとサーバーのフェッチロジックの両方を処理する React Query の薄いラッパーです。これにより、技術スタックが大幅に簡素化され、機能開発が迅速化され、データベースへのより信頼性の高い段階的な変更が可能になります。
Prisma は、新しいマイクロサービスアーキテクチャとシームレスに連携し、データが必要なサービス間で共有できる独自のライブラリに抽象化されています。Prisma は、サーバーレス関数が必要に応じて DB 接続を自動的に開閉します。Martina Welander によるこのテーマに関する講演 世界最悪のプールパーティー: Prisma での接続管理 をご覧ください!
Invisible のエンジニアリング文化
Invisible は、すべての部門、特にエンジニアリングチーム全体でオーナーシップの文化を真に受け入れています。Invisible の CTO である Scott Downes は、チーム内の共有責任感を次のように説明しています。
当社のすべてのパートナー (「従業員」という言葉は禁止されています!) は、透明性のある能力主義モデルに同意しており、誰もが時間の経過とともに有意義な株式を獲得し、当社の給与とボーナスはビジネスの業績に直接結び付けられています。個人の仕事は、会社の方向性と成功に直接影響を与え、形作ります。

これは、Pieter の仕事を見ると特に明らかです。Pieter は、以前のスタックの欠陥を単独で評価し、新しいスケーラブルで将来を見据えたソリューションの設計のオーナーシップを取りました。
完全にリモートの Invisible チームに参加したい場合は、すべての求人情報を こちら でご確認ください。
結論
効率と自動化を推進することの重要性を認識する企業が増えるにつれて、Invisible の収益は過去 1 年間で 4 倍になりました。Prisma などのテクノロジーに依存することで、アジャイル性とスケーラビリティを維持し、顧客からの高まる需要に対応できるようになります。
Prisma を採用することで、Invisible は以前よりもはるかに迅速に変更をデプロイできるようになり、チームの効率を向上させ続けながら、顧客のコストを削減できるようになりました。
Prisma がチームの生産性向上にどのように役立つかの詳細については、Prisma Slack コミュニティにご参加ください。
次回の投稿をお見逃しなく!
Prisma ニュースレターにサインアップ