152nd airhacks tv: Expertise vs LLMs, BCE Boundaries, Transactions, Spec-Driven BCE 📎
- Java CLI scripts ("JavaScripts") vs. "POJO scripts": the "zlastmod" script listing the last N modified files recursively; the history and naming of POJOs (2003 EJB/CORBA era)
- airails.dev Java CLI script skill: one-shot single-file scripts structured as Boundary Control Entity (BCE)
- New airails.dev JDBC persistence skill using data-oriented programming
- Is deep technology expertise still relevant with LLMs: principles like 2PC, ACID vs. BASE / eventual consistency matter more than ever; green tests are not enough
- Defining great code in the LLM era (preview of the W-JAX Munich talk): easy to find, aligned with requirements, verbose naming, easy to read, consistently structured, without dependencies
- Reading code vs. reading generated Markdown specs or UML diagrams; agents drift toward suboptimal code (POJOs instead of records, JDK 11-style code) unless questioned
- Less extensible, simpler Java code with LLMs: no factories, abstract factories or interfaces without multiple implementations; hexagonal example vs. BCE
- "Go slower to be faster": the bottleneck is business and test departments, not code generation; agent swarms do not help
- Migrating Spring Boot to BCE with Quarkus: repositories/DAOs become plain Java classes with business names (e.g. AccountOpener in eBank), no interfaces, no Manager/Impl/Service/Control suffixes, no GoF builders/factories — enforced by airails.dev Java conventions skill
- airails.dev distribution: plain zip with skills, no CLI, install into .claude/skills, 187-line Java installer script
- BCE communication rules: boundaries call controls directly, a boundary must not invoke a boundary of the same component, cross-component boundary calls allowed, entity-to-entity references across components allowed but cohesion within the package should dominate
- Transaction boundaries always on boundaries; annotate the class, not methods (MicroProfile skill update); a use case is a transaction
- Local inference with Java and Panama FFM: project Argus and Adam's light metal running Gemma locally via llama
- BCE as agentic architecture: business-named top-level packages minimize merge conflicts in parallel agent work and save tokens; demo with the smallest model finding all BCs and excluding health/HTTP/logging infrastructure
- Beyond spec-driven development: spec-driven BCE (SBCE) with specs in package-info.java, bidirectional code/spec sync; new capability brief (user stories for business people mapped to BC specs) and system brief (vision and invariants, once per system) skills
- Free YouTube course "Screaming Architecture for Humans and LLMs" (30 episodes) and the follow-up "Agentic Development with BCE"
- Time machine to episode 52 (2018): CDI across multiple jars and Jandex in Quarkus, avoiding multiple jars and repositories for LLMs, CompletableFuture, microservices ("microservices cancelled" sticker), ECB/BCE
- Validation: JSON-P with hand-written (LLM-generated) validation vs. Bean Validation, OpenAPI conformance; JSON Pointer slash notation for extracting subsets
- Claude Code vs. Codex vs. Mistral Vibe vs. GitHub Copilot CLI: all understand BCE and read package-info; for Java the tool matters little
- Upcoming: W-JAX Munich, J-Fall (Netherlands), Java and LLMs event in Cluj, Romania (BMW TechWorks), airhacks workshop at Munich Airport on December 10th, virtual workshops on agents and migrations
Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv