Musubi AI 在庫管理のインフラアーキテクチャ図

カケハシは「日本の医療体験を、しなやかに。」をミッションとし、服薬指導のサポートも行えるクラウド型電子薬歴システム「Musubi」、薬局と患者さんをつなぐおくすり連絡帳システム「Pocket Musubi」、薬局向けの在庫管理・発注システムである「Musubi AI在庫管理」などを開発しています。
Musubi AI在庫管理は、AIによる高精度な需要予測により、これまで人的オペレーションに依存していた発注業務を半自動化し、薬局の業務効率化と医薬品の欠品・在庫リスク軽減を実現しています。
アーキテクチャ選択の背景や意図は大きく3点あります。
マネージドサービスの積極採用
Musubi AI 在庫管理には、一般的な医薬品の在庫管理システムとして開発当初から必要とされていた機能が多くあり、これまでたくさんの機能追加を重ねてきました。ユーザーヒアリングやユーザーモニタリングから得られたフィードバックを基に要件を固め、素早く開発をして顧客価値の提供につなげるため、 LambdaやMWAA、Glue等のマネージドサービスを積極的に採用し、機能開発に注力できるようにしています。
独立したアルゴリズム開発
Musubi AI 在庫管理の一番の強みであるAIによる需要予測については、データサイエンティストや機械学習エンジニアがアルゴリズムを開発しています。アルゴリズムの開発はWebアプリケーション開発とは開発サイクル等が異なるため、MWAAやGlueを用いてデータ連携基盤を用意し、独立して開発が行える環境を用意しています。なお、機械学習、推論処理はStep Functionsを利用して効率的に処理を実行しています。
データレイクハウスの活用
アジャイルにおける素早い価値提供の中で、PdMやデータサイエンティスト等がデータドリブンで意思決定を行うデータ基盤は必要不可欠です。一方で、Musubi AI 在庫管理で扱う処方箋等のデータは個人情報の中でも機微情報に当たるため、取り扱いには細心の注意が必要です。そこでMusubi AI 在庫管理ではデータ基盤としてDatabricksを採用し、適切な権限制御や匿名化を行いつつ必要なデータに素早くアクセスできる基盤を整えています。
現在のアーキテクチャの課題と今後の改善予定
徐々に導入いただく薬局さまも増え、その規模も大きくなる中で、大企業特有の機能追加を随時行っている最中ではあるものの、当初想定していた機能についてはある程度揃えることができてきました。機能追加を優先する必要があった初期開発フェーズから、長期的に効率よく保守運用するフェーズに移行するにあたり、システム全体をシンプルに再構築する必要があると考えています。
また、これまでのAI在庫管理の開発で得た知見とデータを元に、より良いAIサービスへ拡充する検討も進んでおり、社内の他プロダクトとの連携などにも注力していくことになると考えています。

基礎知識
薬局?の在庫管理と需給予測かな。
業態が特定されているのでプロダクトはもちろん営業力が大事そう。
あとは法律的なことや、薬というドメインに対する理解力とか。
気になったこと
1. 薬局にある Agent ってなに
これかなあ?
まあ詳しくはわからない
2. AppSyncはなぜ?
リアルタイムデータ同期とオフライン機能を備えた、柔軟でスケーラブルなGraphQLおよびPub/Sub APIを簡単に開発できるフルマネージドサービス。
カケハシでは他のプロダクトでも AWS Lambda を多用しているため、社内に開発・運用の知見がありました。「Musubi AI在庫管理」はプロジェクトの立ち上げ時期にスピーディーに開発する必要があり、ノウハウがあった AWS Lambda は自分たちのニーズにマッチしていました。
また、カケハシ社内ではシステムを横断的に管理する SRE チームはあるものの、基本的には各プロダクトの開発チームが DevOps を担います。少人数のエンジニアでサービスを開発しつつインフラ関連の業務も担当するため、サーバーレスである AWS Lambda は運用工数を低減してくれるので助かりました。
AWS AppSync を用いると GraphQL の API を簡単に構築できますし、データソースの柔軟性も高いです。サブスクリプションの機能がデフォルトで備わっているのも、AWS AppSync の良さだと思います。最小限の開発・運用工数で API を作ることができ、その後のメンテナンスもしやすいのが AWS AppSync + AWS Lambda 構成の利点でした。

やっぱり営業が多い
年収レンジ高いな。