キャディのバックエンドエンジニアをして働いている高藤です。 キャディではRustを使ったAPIサーバを開発しています。今回はその開発の過程で導入したcargo workspaceを使ったプロジェクト構成についてまとめました。 今回のアプリケーションについて Rustで記述 ドメイン駆動設計を用いて設計をしており、ドメイン層を明確に分離している アプリケーションの役割はgRPCでAPIを提供したり、MessageQueueからくるメッセージの処理を行う 実装しているアプリケーションで使っている技術や設計手法などは弊社エンジニアが書いた別の記事もご参照下さい。 DDDのパターンをRustで表現する ~ Value Object編 ~ TypeScriptにおけるgRPC関連ライブラリの比較とプロダクト開発で採用した方法の紹介 workspaceを使うようになるまでの経緯 開発初期、cargo