01 · Architecture
Decisions before code
Clean architecture with the dependency direction enforced by ArchUnit, a version matrix checked against release pages, eleven ADRs, a definition of done.
← Janaka Academy · Learning series
Fourteen modules that follow one real application from its first architecture decision to a public URL on Kubernetes. The application is AssetCare, live today on Java 25, Spring Boot 4.1, Angular 22, PostgreSQL, Keycloak, K3s and Helm; the full source is available to learners on request, so every module ends with something you can run. This is a case study and engineering walkthrough, published progressively: what is written today is linked, what is still to come is labelled as such.
How to use this series
Who it is for
Engineers who can write a Spring or Angular application and want to see, on a real codebase, everything that surrounds it in production: identity, migrations, containers, a cluster, TLS, a pipeline, backups and operations.
What you need
Java 25, Node 24, Docker. make doctor in the source repository (access on request) checks all three. The setup guide starts from an empty machine and verifies every step. A cloud account is needed only from module 09 onwards.
Where the material lives today
The seven-course walkthrough already covers most modules with why, what, how and proof. The case study covers the live deployment and its verification. Dedicated lessons with exercises are added module by module.
Modules
Each card says where the material is now. "Read now" links to the existing walkthrough or case study section; "lesson coming" means a dedicated lesson with exercises has not been produced yet.
01 · Architecture
Clean architecture with the dependency direction enforced by ArchUnit, a version matrix checked against release pages, eleven ADRs, a definition of done.
02 · Spring Boot backend
Use cases and ports, Problem Details errors, optimistic locking with If-Match, idempotency keys, an audit event for every write, authorization as a policy.
03 · Angular frontend
URL-held list state, conflict detection, drafts, attachments, a command menu, design tokens, dark mode, phone layout, accessibility rules, a strict CSP in the production build.
04 · PostgreSQL and Liquibase
The database model with every column, constraint and index; changesets with rollbacks; dev and prod contexts; Testcontainers to prove the changelog and the entities agree.
05 · Authentication with Keycloak
Realm, clients and roles; the SPA's authorization-code flow; JWT validation in the API; USER, ADMIN and AUDITOR; what the UI hides and what the API refuses regardless.
06 · Docker
A JRE image with a container-aware heap and graceful shutdown; unprivileged nginx rendering its runtime config; Compose for the stateful parts; Trivy and SBOM on every build.
07 · Kubernetes and K3s
Why K3s, what the installer does, probes that drive restarts and traffic, what the ingress exposes and what stays inside, and the interactive board that assembles the cluster step by step.
08 · Helm
Every environment difference as a value; enterprise switches for an external database, identity provider, object storage and vault secrets; lint and template in CI; rollback.
09 · Infrastructure with Terraform
Hetzner Cloud with the hcloud provider: the CX33, a cloud firewall, a cloud-init user, nightly server backups; why the free tier was abandoned and what that decision cost.
10 · HTTPS with cert-manager
ClusterIssuers for staging and production, HTTP-01 through Traefik, DNS, the moment the certificate goes Ready, and automatic renewal.
11 · CI/CD
Tests at every level, Playwright against the production image, a restore drill, Helm and Terraform validation, image scans, CodeQL, gitleaks, signed multi-arch releases with SBOM and provenance.
12 · Observability
Structured logs with request and trace ids, Micrometer, OpenTelemetry, and the optional profile with Prometheus, Grafana, Loki and Tempo that runs locally and is not yet deployed on the small production server.
13 · Production health checks
Liveness and readiness groups, what was verified from outside the server and how, the one-command health summary, backups with a rehearsed restore, and the "the VM is gone" procedure.
14 · AI-assisted engineering workflow
A CLAUDE.md with the non-negotiables, project skills for the common changes, what the assistant accelerated, what stayed with the engineer, and how the verification report keeps both honest.
The live deployment has a public demo account with fictional sample data. Sign in, change something, upload a file, read the audit trail, then come back and find the code that did it.