Backend Principle Eng Java Pro Max
Senior principal-level guidance for Java backend systems in product companies. Emphasizes durable architecture, production readiness, and measurable outcomes.
When to Apply
- Designing or refactoring Java services, APIs, data pipelines, or distributed systems
- Reviewing PRs for correctness, reliability, performance, and security
- Planning migrations, scalability, or cost optimizations
- Incident follow-ups and systemic fixes
Priority Model (highest to lowest)
| Priority | Category | Goal | Signals |
|---|---|---|---|
| 1 | Correctness & Contracts | No wrong answers | Stable invariants, strong validation, idempotency |
| 2 | Reliability & Resilience | Survive failures | Timeouts, retries, circuit breakers, graceful degrade |
| 3 | Security & Privacy | Zero trust by default | Authz everywhere, secrets managed, minimal data exposure |
| 4 | Performance & Efficiency | Predictable latency | P95/P99 targets, bounded queues, efficient I/O |
| 5 | Observability & Operability | Fast detection and recovery | Tracing, actionable alerts, runbooks |
| 6 | Data & Consistency | Integrity over time | Safe migrations, transactional boundaries, outbox |
| 7 | Scalability & Evolution | Safe growth | Statelessness, partitioning, versioning |
| 8 | Developer Experience & Testing | Sustainable velocity | CI gates, deterministic tests, clear docs |
Quick Reference (Rules)
1. Correctness & Contracts (CRITICAL)
api-contracts- Versioned APIs, explicit schemas, backward compatibilityinput-validation- Validate at boundaries, normalize, reject unknownsidempotency- Safe retries for mutating calls with idempotency keysinvariants- Enforce domain rules in service and databasetime-utc- Store UTC, handle clock skew, use monotonic time for durations
2. Reliability & Resilience (CRITICAL)
timeouts- Set per dependency; no unbounded waitsretries- Bounded with jitter; never retry non-idempotent without keyscircuit-breakers- Fail fast when downstream degradesbulkheads- Isolate thread pools and queues per dependencyload-shedding- Backpressure and graceful degradation under load
3. Security & Privacy (CRITICAL)
authz- Enforce at every service boundary, deny by defaultsecrets- Managed via vault/KMS; never in code or logsdata-min- Log minimal PII, redact by defaultcrypto- TLS everywhere, rotate keys, strong defaultssupply-chain- Pin deps, scan CVEs, reproducible builds
4. Performance & Efficiency (HIGH)
pooling- Right-size DB/HTTP pools; avoid blocking shared poolsserialization- Avoid reflection in hot paths; prefer explicit schemasallocation- Minimize hot-path allocations and boxingcache- TTL and stampede protection for hot readsbatching- Batch I/O and DB operations where safe
5. Observability & Operability (HIGH)
structured-logs- JSON logs with trace/span ids and request idsmetrics- RED/USE metrics plus business KPIstracing- Propagate context end-to-endalerts- SLO-based, actionable, with runbooksdeploys- Safe rollouts, health checks, rapid rollback
6. Data & Consistency (HIGH)
transactions- Clear boundaries, short duration, avoid cross-service txschema-evolution- Backward compatible migrationsoutbox- Reliable event publishing with transactional outboxid-generation- Globally unique IDs; avoid auto-increment for scaleread-models- Use CQRS only when complexity is justified
7. Scalability & Evolution (MEDIUM)
stateless- Externalize state, scale horizontallypartitioning- Shard by stable keys, avoid hotspotsversioning- API and event versioning with deprecation plansbackpressure- Bounded queues, explicit limitsconfig- Dynamic config with safe defaults and validation
8. Developer Experience & Testing (MEDIUM)
tests- Unit, integration, contract, and load testsdeterminism- Hermetic tests, fixed seeds, stable timelint- Static analysis, formatting, build reproducibilitydocs- ADRs for major decisions, runbook ownership
Execution Workflow
- Clarify product goals, SLOs, latency and cost budgets
- Map data flow, dependencies, and failure modes
- Choose storage and consistency model (document tradeoffs)
- Define contracts: API schemas, events, and idempotency
- Implement with safe defaults, observability, and resilience
- Validate with tests, load, and failure scenarios
- Review risks and publish runbooks
Language-Specific Guidance
See references/java-core.md for stack defaults, JVM tuning, libraries, and Java-specific patterns.