Bazbii チームガイド
Bazbiiは位置情報ベースのソーシャルフィードアプリケーションです。 このガイドは、チームメンバー全体がビジョンを共有し、開発から運用・ビジネス戦略までを統合的に理解するための資料集です。
はじめる前に
新規参加者の方は、まずオンボーディングガイドをご確認ください。
ガイドの構成
このチームガイドは以下のような構成になっています:
- プロダクト: マネタイズ戦略とビジネスモデル
- アーキテクチャ: システム全体の設計思想と構造
- インフラストラクチャ: インフラ構成と監視(セキュリティ含む)
- 開発ガイド: 開発環境セットアップ、開発ワークフロー、バックエンド/フロントエンド、API仕様、リファレンス
- 運用ガイド: デプロイメントと運用
プロジェクトの概要
技術スタック
- バックエンド: Go 1.25, gRPC, Connect RPC, PostgreSQL
- フロントエンド: TypeScript, Next.js, React Native (Expo)
- インフラ: Docker, Kubernetes, Cloudflare, OpenTelemetry
- プロトコル: Protocol Buffers (buf)
モノレポ構成
bazbii/
├── client-apps/ # クライアントアプリケーション
│ ├── user-mobile/ # エンドユーザー向けモバイルアプリ
│ ├── partner-web/ # パートナー向けWebアプリ
│ └── ops-web/ # 運用管理Webアプリ
├── server-apps/ # サーバーアプリケーション
│ ├── gateway/ # HTTP/JSON API Gateway (Connect RPC)
│ └── api/ # gRPC API Server
├── server-core/ # ドメインロジックとビジネスルール
├── server-platform/ # 横断的関心事の実装
├── packages/ # 共有パッケージ
│ ├── proto/ # Protocol Buffers定義
│ ├── i18n/ # 国際化
│ ├── themes/ # テーマシステム
│ └── ...
└── infra/ # インフラ設定
アーキテクチャの特徴
- ポート/アダプタパターン: server-coreはインターフェースのみ定義、server-platformが実装
- 依存方向の制御: client-apps → server-apps → server-core の一方向依存
- 外部公開はGatewayのみ: Connect RPCでHTTP/JSONを提供、内部はgRPCで通信
用語集
- H3: Uberが開発した地理空間インデックスシステム。六角形のセルで位置を表現
- Actor: システム内の主体(ユーザー、パートナー、システム、ボット)
- Post: 位置情報に紐づく投稿
- ポート/アダプタ: ドメインロジック(ポート)と外部実装(アダプタ)を分離するパターン
- Connect RPC: gRPC互換のHTTP/JSONプロトコル
クイックリンク
よく使うドキュメント
- システム概要 - アーキテクチャ全体像
- ローカル開発環境 - 開発環境の詳細
- 開発ワークフロー - 日常的な開発フロー
- 非機能要件チェックリスト - NFR要件