API Design FastAPI Python Software Architecture

Your FastAPI Middleware May Never See the Whole Response

A FastAPI middleware can return a response before a streaming response has finished sending its body. That is the shorthand behind this headline: the middleware can inspect the response object, yet still not have seen every byte the client will receive. To understand why, think of middleware as a wrapper around an ASGI application, not […]

Python Software Architecture

FastCRUD for FastAPI: Less Repetitive CRUD, Not Less Architecture

Quick summary Automate predictable CRUD: FastCRUD reduces repeated endpoint and data-access wiring. Expose relationships deliberately: control fields and response sizes. Keep business rules explicit: permissions, tenant boundaries and transactions remain design choices. Use custom endpoints when needed: complex domain workflows may need a service layer. One FastAPI tool I’ve found genuinely useful lately is FastCRUD. […]

LangGraph

LangGraph Evaluation Tutorial: Test Multi-Agent Workflows

Quick summary Evaluate the whole graph: assess answers, routing, tool use, reliability and cost. Use deliberate test cases: cover ordinary requests, edge cases and safe failures. Compare against a baseline: combine offline tests with production feedback. Apply focused human review: use a consistent rubric where judgement matters. LangGraph evaluation turns a convincing multi-agent demo into […]

LangGraph

LangGraph Persistence Tutorial: Checkpoint and Resume Multi-Agent Workflows

Quick summary Checkpoint state: persistence lets a graph pause, recover and continue. Resume the same thread: reuse its identifier and supply the review decision. Design for replay: repeated execution must not duplicate consequential actions. Use durable storage: production needs an appropriate backend and retention policy. LangGraph persistence is what makes a multi-agent workflow safe to […]

LangGraph

LangGraph Routing and Parallel Execution: Send Tasks to the Right Agents

Quick summary Route: inspect the question and select the specialists that can help. Fan out: create one targeted task for each selected worker. Merge: wait for the active branches, then synthesize their findings. LangGraph routing is the point where a multi-agent graph stops broadcasting work and starts making deliberate choices. It decides which specialist should […]

LangGraph

LangGraph Shared State Tutorial: Control Context in Multi-Agent Systems

Quick summary Define a state contract: make field ownership, inputs and updates explicit. Separate context types: shared facts, private material and long-term memory serve different purposes. Return partial updates: use deliberate reducers instead of mutating a shared snapshot. Test data flow: verify merge behaviour and the context each worker receives. LangGraph shared state is where […]

Python

Python 3.15 Is Almost Here: 7 Features Developers Should Know

Quick summary The article reviews seven Python 3.15 changes: its focus includes imports, immutable data, API design and developer tooling. Adopt features for a concrete need: measure startup or workload behaviour before changing working code. Check compatibility first: dependencies and native extensions can determine when a runtime upgrade is practical. Upgrade with evidence: test in […]

LangGraph

LangGraph Supervisor Tutorial: Build a Multi-Agent System

Quick summary Give coordination a clear owner: a supervisor selects specialists and remains responsible for the final response. Keep workers focused: supply bounded tasks and request concise, structured results. Control the workflow in code: enforce budgets, permissions and stopping conditions outside model instructions. Start simple: introduce specialists only when separate responsibilities make the system easier […]

LangGraph

LangGraph Multi-Agent Systems: Practical Tutorial Series

Quick summary Follow a progressive learning path: move from a stateful conversational agent to coordinated specialists. Add one capability at a time: the series covers supervisors, shared context, routing, persistence and evaluation. Make responsibilities explicit: separate planning, execution, data flow and recovery. Build for observability: favour understandable state and testable behaviour over adding more agents. […]

Artificial Intelligence Python

TurboVec: What This Rust Vector Index Is and How to Evaluate It

Quick summary TurboVec is presented in its repository as a Rust vector index with Python bindings. The project is described as being built on TurboQuant. Google Research presents TurboQuant as work focused on AI efficiency through extreme compression. Benchmarks, retrieval quality, integration requirements, licensing, and operational fit should be checked against a representative workload before […]

Subscribe to Our Newsletter

We don’t spam! Read our privacy policy for more info.