The anime catalogue service for weeb.vip: the series themselves, and everything the site shows about them.
A Go GraphQL service built with gqlgen with federation support, so it composes into the gateway schema alongside the other services rather than being called directly. MySQL underneath, through GORM.
Requires Go and MySQL.
make migrate # bring the database up to date
go run cmd/main.go server # the GraphQL serverconfig/config.dev.json is the local config; config/config.go defines the
shape, and environment variables override it.
make gql # regenerate resolvers from graph/schema.graphqls
make mocks # regenerate test mocks
make generate # bothGenerated output is committed, so regenerate and commit it with any schema change.
make migrate-create name=add_something
make migrateMigrations live in db/migrations as up/down SQL pairs.
Instrumented through go-metrics-lib, which reports to Datadog and Prometheus.
Several rounds of query and index work are written up in
DATABASE_OPTIMIZATION.md, OPTIMIZATION_NOTES.md and
PERFORMANCE_OPTIMIZATION_SUMMARY.md; ENVIRONMENT_LOGGING.md covers how
logging differs between environments.
.mirrord/ is configured for mirrord, so a local
process can run against the cluster's traffic and dependencies.