InvisibleはB2B生産性スタートアップで、ユーザーがWorksharingを通じて、複雑なワークフローやビジネスプロセスを自動化・外部委託できるようにします。Prismaは、Invisibleが技術スタックの将来性を確保し、その規模拡大をサポートする上で重要な役割を果たしました。

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

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

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

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