Latest curated articles from top engineering blogs
276 articles
This article explores the architectural implications of designing AI agent systems, arguing that less autonomous agents, operating within defined boundaries and supervised by humans, often yield more robust and useful outcomes. It emphasizes the importance of carefully defining the agent's decision space, access, and responsibilities to improve predictability, auditability, and overall system reliability.
This article outlines the eight fundamental expectations of a software architect, drawing inspiration from "Fundamentals of Software Architecture." It emphasizes that the role extends beyond technical decisions to include continuous architectural analysis, business domain understanding, and strong interpersonal and organizational skills, which are crucial for guiding technical teams and ensuring long-term system health.
This article advocates for an AI gateway workflow pattern to manage diverse AI model integrations in growing applications. It highlights how centralizing model routing logic prevents scattering provider-specific code throughout the application, improving maintainability and enabling dynamic policy changes. The gateway abstracts away complexities like model selection, fallbacks, cost controls, and streaming behavior, allowing product code to remain focused on business logic.
Thira is developing an agentic "system of execution" for enterprise back-office IT processes, leveraging AI to automate complex workflows across disparate systems. The core system design challenge involves building a self-learning engine that can adapt to unique enterprise environments, while simultaneously ensuring trust through features like audit trails, kill switches, and semi-autonomous modes.
This article argues that core software architecture principles like SOLID, layered architecture, high cohesion, and low coupling become even more critical in an era where AI can rapidly generate code. These fundamentals act as guardrails, ensuring systems remain manageable, understandable, and maintainable amidst the accelerated pace of development.
This article discusses critical considerations for managing token costs in agentic AI systems within a production environment. It explores how token usage accumulates across different components like tool definitions, session history, and retrieval-augmented generation (RAG) loops, and provides strategies for cost reduction through careful design and monitoring. The focus is on architectural decisions that impact operational expenses and system efficiency when deploying LLM-powered agents.
This article discusses the evolving challenge of validating changes in microservice architectures, especially with the rise of AI-assisted coding. It argues that traditional pre-merge validation, limited to basic checks, is insufficient for distributed systems. The core solution proposed involves leveraging ephemeral, production-like environments for comprehensive system-level validation before merging, facilitated by traffic routing rather than full stack duplication.
This article advocates for building "disposable" modular monoliths structured with Clean Architecture and Domain-Driven Design's Bounded Contexts, especially in the early stages of a project. It argues against premature microservice adoption and unstructured monoliths, highlighting how a well-architected modular monolith provides operational simplicity and clear boundaries, facilitating future extraction into microservices if truly needed. The core idea is to enforce strict data ownership at the module level, preventing direct database coupling between domains.
This article discusses the architectural approach for building a cross-platform e-commerce mobile application using Flutter for the frontend and a decoupled backend. It highlights the importance of separating concerns, leveraging a REST API, and optimizing performance through various techniques to achieve scalability and a smooth user experience.
This article emphasizes that good system architecture prioritizes adaptability over rigid 'future-proofing'. It argues that designing for change, rather than anticipating every future requirement, leads to more maintainable and evolvable software, ultimately preserving engineering momentum and business value. Key aspects include managing coupling, establishing clear business-aligned boundaries, and defining explicit contracts to facilitate local changes.
This article discusses an architectural shift from monolithic AI models to a multi-agent system for customer support bots. By employing specialized sub-agents managed by a super agent, the system achieves significantly higher resolution rates and customer satisfaction. This distributed approach addresses the inherent complexity and ambiguity of real-world business problems, demonstrating that structural design, rather than model size, is key to AI reliability.
This article details the architecture of Airbnb's Sitar-agent, a Kubernetes sidecar designed for dynamic configuration distribution across a large microservices fleet. It highlights key architectural decisions such as using a sidecar over libraries, snapshot-based bootstrapping from S3 for resilience, and migrating from Sparkey to SQLite for local storage. The system focuses on ensuring high availability of configuration data and rapid propagation of updates while minimizing dependencies on centralized infrastructure.