Domain-Focused Component Architecture for AI-Assisted Development: A Hands-on Workshop
by Allen Holub
There isn’t an LLM on the planet that understands architecture, but without the structure of an appropriate architecture, the system “drifts” gradually into one riddled with mysterious bugs, one that can’t scale or adapt easily to new requirements. You can’t just specify features in your prompt and hope for the best; you must tell the LLM how to build those features, and you need an architecture that’s tailored specifically for AI-assisted development.
The most effective architectures for this purpose are domain-focused component architectures. (These encompass everything from compartmentalized monoliths to microservices.) The domain focus allows you to easily work incrementally across multiple teams, evolving the system gradually as you learn. The component structure limits the blast radius of problematic code and minimizes surprises (e.g., bugs introduced by the LLM in a part of the system you didn’t expect). This approach reduces development, maintenance, and debugging time and costs (token spend) by an order of magnitude.
In this hands-on workshop, you’ll learn:
* The characteristics of component systems
* How to create architectures that welcome changing requirements and facilitate teamwork without adding dependencies that can slow you down.
* How to design systems that can evolve incrementally over time. Incremental architectures start simple and grow as you learn, as the need for scaling emerges
* How to design systems that support AI-assisted software engineering, make it easy to incorporate code written by the LLM, manage contexts effectively to improve accuracy and keep token costs down, and limit the blast radius when the LLM makes a mistake.
* How to identify the user’s story (? Hands-on exercise)
* Workflow analysis and how to use it to shrink stories (? hands-on exercise)
* How to design effective declarative APIs around the domain workflow (? hands-on exercise)
* How to build choreographed systems around messaging
* Messaging topology (? hands-on exercise)
* The Principles of DDD (domain-driven design)
* How to design domain-focused event-based messaging systems using event storming (? hands-on exercise)
* How to build effective APIs for both human and intelligent agent-to-agent communication.