Skip to content
CAI
Software that uses CAICheck a score

sangria-graphql/sangria-akka-http-example

59.4

Weak · 20 September 2026

263

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a GraphQL API server built on Scala, Akka HTTP, and the Sangria library, designed to expose a Star Wars-themed dataset. It provides paginated queries for characters and supports cross-origin requests, Apollo tracing, and deferred resolvers for batching data. The implementation has been modernized with Scala 2.13 and Circe for JSON serialization, and includes deployment support for Heroku.

Behavioural changes

Adds CORS support, pagination queries, and Apollo tracing

The server now includes a new \CorsSupport\ trait to handle Cross-Origin Resource Sharing headers and preflight requests, enabling browser-based clients to interact with the API. The GraphQL schema has been extended with \humans\ and \droids\ fields that support pagination via \limit\ and \offset\ arguments, allowing clients to retrieve lists of characters. Additionally, the server now supports Apollo tracing via the \X-Apollo-Tracing\ header and uses a new fetcher-based deferred resolver for batching friend lookups, replacing the previous manual deferred resolver implementation.

src/main · high confidence

Updated example to use GraphQL best practices and added Heroku deployment support

The example application now follows GraphQL best practices for HTTP requests, switching from GET-based queries with query string parameters to POST requests with JSON bodies, and includes an interactive GraphQL Playground at the root path. Additionally, the project now supports Heroku deployment via a new app.json file and updated documentation.

(repo-wide) · high confidence

Test coverage

Added tests for Star Wars GraphQL schema queries

Added a new test suite (SchemaSpec) that validates the Star Wars GraphQL schema by verifying that the hero query correctly identifies R2-D2 and that fetching a specific human by ID returns the expected character details and friends list.

src/test · high confidence

Dependencies

Major dependency upgrades and migration to Scala 2.13

The project has been upgraded to Scala 2.13.17 and significantly updated its core libraries: Sangria to 4.2.15, Akka HTTP to 10.2.10, and Circe to 0.14.15. The JSON serialization backend has switched from json4s to Circe, introducing circe-core, circe-parser, and circe-optics while removing json4s-native and akka-http-json4s. Additionally, the build now enables JavaAppPackaging for native distribution and adds the sangria-slowlog and sangria-akka-http-circe integrations.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 59.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 52
  • Readiness 51
  • Security 92

Changes since last survey

  • 300 commits — 295 feature/other, 5 fixes

By area

  • (repo) — 128 commits
  • (root) — 93 commits
  • project/build.properties — 26 commits
  • src/main — 25 commits
  • project/plugins.sbt — 20 commits
  • .github/workflows — 8 commits

Notable commits

  • fix: Fix Akka HTTP link and document that variables can be a JSON object
  • fix: Revert commit(s) 0666aad
  • fix: Revert commit(s) 4fc84cb
  • fix: Updated to the latest version of sangria and fixed example query
  • fix: Using fetch API now + other minor fixes
  • change: - upgraded the dependencies to the latest version - upgraded sbt - upgraded the sbt deployment plugins
  • change: Added example test
  • change: Added native packager
  • change: Added playground and enabled apollo tracing
  • change: Adjust to Xsource:3
  • change: Arrow!
  • change: Bump all dependencies to latest version
  • change: Bump dependencies to latest versions
  • change: Bump version to Akka v2.4.2 and Sangria v0.5.2
  • change: Bumped versions
  • change: Bumped versions
  • change: Create scala.yml
  • change: Deprecated a field for demonstration purpose
  • change: Extended the example to support querying for all humans and droids
  • change: Ignored .bsp
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

sangria-graphql/sangria-akka-http-example was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 99cc0904a270f850c467d69208b655a7fae3a295 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.