バックエンドガイド
Astar のバックエンドは Kotlin + Spring Boot です。ここでいくつか、他社の Spring Boot 案件とは違う前提を先に共有しておきます。
- Spring Modulith: 巨大な単一
serviceパッケージではなく、core/<module>/単位でドメインごとにモジュール分割されています(47 モジュール)。モジュールをまたぐ依存には向きの規約があります → 層構造。 - Exposed ORM、JPA ではありません。Spring Data JDBC も完全撤去済みです。
docs/backend/README.mdや社外の Spring Boot チュートリアルが前提にしている JPA/Hibernate の知識は、このコードベースにはほぼ当てはまりません。テーブル定義は Kotlin のobject(Exposed table object) が SSoT で、そこからマイグレーション SQL を生成します → マイグレーション。 - PostgreSQL 17 + Row Level Security (RLS)。テナント分離は DB 側で強制されていて、アプリケーションコードの
WHERE tenant_id = ...漏れに依存しません。RLS の全体像は マルチテナンシーと RLS を先に読んでください。本ガイドは RLS を「前提として使う」側の規約(マイグレーションでの必須ポリシーなど)に絞っています。
最初にやること
- 検証ティア を読んで、
/backend-test-reportsskill 経由でしかテストを実行できないことを理解する(./gradlew test直叩きは deny されます)。 - モジュール索引 で、自分が触るモジュールが backend のどこ・frontend のどこに対応するか確認する。
core/tag/(backend/src/main/kotlin/com/astarworks/astarmanagement/core/tag/)を実際に開く。このガイドが繰り返し参照する 最小の完全な参照実装 です。
このセクションの構成
- 層構造 —
core/{module}/のapi/→domain/→infrastructure/3 層規約と依存の向き - 規約 — 命名・DTO・kotlinx.serialization・トランザクション規約
- テスト — unit / guard (ArchUnit) / integration の区分と実行経路
- マイグレーション — Flyway V 番号運用と RLS を含む migration 規約
docs/backend/README.md は JPA/Hibernate 時代に書かれた記述が残っている stale なファイル です。読まないでください。バックエンドの正本は本ガイドと backend/CLAUDE.md / docs/backend/conventions.md です。