アーキテクチャ決定
AIと技術選定を行い、プロジェクトのアーキテクチャを決定します。
AIと技術選定
AIへの相談
TaskFlowのアーキテクチャを相談させてください。 【要件】 - リアルタイム同期が必要 - 同時接続100人程度 - チーム開発しやすい構造 【質問】 1. リアルタイム同期: WebSocket vs SSE vs ポーリング? 2. 状態管理: Zustand vs TanStack Query vs Context? 3. バックエンド構成: モノリス vs マイクロサービス? 各選択肢のトレードオフを教えてください。
決定事項
リアルタイム: WebSocket
双方向通信が必要なため。FastAPIの組み込みWebSocketを使用。
状態管理: Zustand + TanStack Query
サーバー状態はTanStack Query、UIの状態はZustand。
バックエンド: モノリス + レイヤードアーキテクチャ
規模的にモノリスで十分。API/Service/Repository層で分離。
ディレクトリ構成
taskflow/ ├── frontend/ │ ├── src/ │ │ ├── app/ # Next.js App Router │ │ ├── components/ # 共通コンポーネント │ │ ├── features/ # 機能別モジュール │ │ │ ├── auth/ │ │ │ ├── projects/ │ │ │ └── tasks/ │ │ ├── hooks/ │ │ └── lib/ │ └── ... ├── backend/ │ ├── app/ │ │ ├── api/ # エンドポイント │ │ ├── services/ # ビジネスロジック │ │ ├── repositories/ # データアクセス │ │ ├── models/ # SQLAlchemyモデル │ │ └── websocket/ # WebSocket処理 │ └── ... └── docker-compose.yml