メインコンテンツへ

バックエンドガイド

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 を「前提として使う」側の規約(マイグレーションでの必須ポリシーなど)に絞っています。

最初にやること

  1. 検証ティア を読んで、/backend-test-reports skill 経由でしかテストを実行できないことを理解する(./gradlew test 直叩きは deny されます)。
  2. モジュール索引 で、自分が触るモジュールが backend のどこ・frontend のどこに対応するか確認する。
  3. 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 です。