# FastAPI

Published articles for FastAPI.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Write End-to-End Tests in Your Backend's Language

DevFeed: [Write End-to-End Tests in Your Backend's Language](<https://devfeed.tech/articles/write-end-to-end-tests-in-your-backend-s-language-41361.md>)

Original publisher: [Read original article](<https://spin.atomicobject.com/write-end-to-end-tests-in-your-backends-language/>)

Author: James McConkey

Published: 2026-09-17T12:00:42Z

Content type: tutorial

Language: en

Sources: [Atomic Object](<https://devfeed.tech/sources/atomic-object.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Python](<https://devfeed.tech/topics/python.md>), [test data](<https://devfeed.tech/topics/test-data.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [SQLAlchemy](<https://devfeed.tech/topics/sqlalchemy.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>)

Tags: [asp-net-core](<https://devfeed.tech/tags/asp-net-core.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [project-team-management](<https://devfeed.tech/tags/project-team-management.md>), [python](<https://devfeed.tech/tags/python.md>), [sqlalchemy](<https://devfeed.tech/tags/sqlalchemy.md>), [tests](<https://devfeed.tech/tags/tests.md>), [the-software-life](<https://devfeed.tech/tags/the-software-life.md>)

### AI overview

This article argues that end-to-end test-data setup is often the main design challenge, because tests must create consistent domain records while running alongside other tests. It recommends using browser-testing tools in the backend's language when possible, keeping meaningful relationships inline, and extracting small creation helpers without hiding scenario intent.

### Source excerpt

The browser is often the easiest part of an end-to-end test. Consider a test that verifies a user can complete an overdue task. The visible interaction is small: sign in, find the task, click Complete, and observe the new status. Before any of that can happen, the test needs a workspace, a user, a project, and [...] The post Write End-to-End Tests in Your Backend's Language appeared first on Atomic Spin.

## Learn How to Deploy, Secure, and Automate Full-Stack Web Apps

DevFeed: [Learn How to Deploy, Secure, and Automate Full-Stack Web Apps](<https://devfeed.tech/articles/learn-how-to-deploy-secure-and-automate-full-stack-web-apps-31472.md>)

Original publisher: [Read original article](<https://www.freecodecamp.org/news/learn-how-to-deploy-secure-and-automate-full-stack-web-apps/>)

Author: Beau Carnes

Published: 2026-09-16T15:28:18Z

Content type: tutorial

Language: en

Sources: [freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More](<https://devfeed.tech/sources/freecodecamp-programming-tutorials-python-javascript-git-more.md>)

Topics: [web applications](<https://devfeed.tech/topics/web-applications.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Vue.js](<https://devfeed.tech/topics/vue.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [firewalls](<https://devfeed.tech/topics/firewalls.md>), [Python](<https://devfeed.tech/topics/python.md>), [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [SSL](<https://devfeed.tech/topics/ssl.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [full-stack](<https://devfeed.tech/tags/full-stack.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>), [youtube](<https://devfeed.tech/tags/youtube.md>)

### AI overview

This article introduces an 11-hour freeCodeCamp course on deploying, securing, and automating a Vue.js and FastAPI web application. It covers Ubuntu server setup, SSH hardening, firewalls, application runtimes, Meilisearch, DNS, SSL, Nginx, Cloudflare, GitHub Actions, security testing, and observability.

### Source excerpt

Taking a web application from local development to a live, secure production environment can be daunting if you've never looked under the hood. We just published a comprehensive course on the freeCode

## Grab's LLM-Kit Framework Standardizes More Than 500 Internal Agent Services

DevFeed: [Grab's LLM-Kit Framework Standardizes More Than 500 Internal Agent Services](<https://devfeed.tech/articles/grab-s-agent-framework-llm-kit-accelerates-ai-agent-production-deployment-26601.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/grab-agent-platform/>)

Author: Hien Luu

Published: 2026-09-15T09:00:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [agent observability](<https://devfeed.tech/topics/agent-observability.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-ml-data-engineering](<https://devfeed.tech/tags/ai-ml-data-engineering.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [framework](<https://devfeed.tech/tags/framework.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [grab-agent-platform](<https://devfeed.tech/tags/grab-agent-platform.md>), [ml-data-engineering](<https://devfeed.tech/tags/ml-data-engineering.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [news](<https://devfeed.tech/tags/news.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [vault](<https://devfeed.tech/tags/vault.md>)

### AI overview

Grab's internal LLM-Kit framework standardizes more than 500 agent services by providing shared scaffolding for evaluation, tracing, secret handling, service discovery, and tool-server connections. The article reports that deploying a new agent service now takes about one hour instead of two weeks or more.

### Source excerpt

Grab has implemented LLM-Kit, a framework that standardizes over 500 internal agent services. This system enhances service integration, evaluation, and secret handling, reducing the time to deploy new AI agents from two weeks to one hour. It centralizes infrastructure management, allowing runtime tool discovery and flexible model integration, while maintaining operational control. By Hien Luu

## How to Orchestrate Multi-Call Conversations with an LLM and Twilio Conversation Memory in Python

DevFeed: [How to Orchestrate Multi-Call Conversations with an LLM and Twilio Conversation Memory in Python](<https://devfeed.tech/articles/how-to-orchestrate-multi-call-conversations-with-an-llm-and-twilio-conversation-memory-in-python-26247.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/product/orchestrate-multi-call-conversations-with-llm-twilio-conversation-memory-python>)

Author: Amanda Lange, Dylan Frankcom

Published: 2026-09-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [API](<https://devfeed.tech/topics/api.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [llm](<https://devfeed.tech/tags/llm.md>), [ngrok](<https://devfeed.tech/tags/ngrok.md>), [openai](<https://devfeed.tech/tags/openai.md>), [pycharm](<https://devfeed.tech/tags/pycharm.md>), [python](<https://devfeed.tech/tags/python.md>), [visual-studio-code](<https://devfeed.tech/tags/visual-studio-code.md>), [voice](<https://devfeed.tech/tags/voice.md>)

### AI overview

This tutorial shows how to build a Python FastAPI voice agent that uses Twilio Conversation Memory to preserve caller context, preferences, and action history across separate phone calls. It also covers connecting to OpenAI, exposing local webhooks with ngrok, and calling the Conversation Memory REST API asynchronously.

### Source excerpt

Learn how to build a Python FastAPI voice agent that uses Twilio Conversation Memory to remember callers across separate phone calls, so if someone hangs up and calls back, the agent picks up right where the conversation left off.

## How to Connect Your Twilio Agent to External APIs in Python

DevFeed: [How to Connect Your Twilio Agent to External APIs in Python](<https://devfeed.tech/articles/how-to-connect-your-twilio-agent-to-external-apis-in-python-16103.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/product/how-to-connect-twilio-agent-to-external-apis-python>)

Author: Amanda Lange, Dylan Frankcom

Published: 2026-09-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [API](<https://devfeed.tech/topics/api.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [voice ai](<https://devfeed.tech/topics/voice-ai.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>)

Tags: [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [apis](<https://devfeed.tech/tags/apis.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [ngrok](<https://devfeed.tech/tags/ngrok.md>), [openai](<https://devfeed.tech/tags/openai.md>), [python](<https://devfeed.tech/tags/python.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [visual-studio-code](<https://devfeed.tech/tags/visual-studio-code.md>), [voice-ai](<https://devfeed.tech/tags/voice-ai.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This tutorial explains how to connect a Twilio voice agent to an external REST API using Python and FastAPI. It demonstrates using LLM tool calling to fetch live data and take actions on a caller's behalf.

### Source excerpt

Learn how to connect a Twilio voice agent to an external API using Python, so it can fetch real-time data and take action on a caller's behalf.

## Deploying a RAG Chatbot with Shared State and Storage Across Replicas

DevFeed: [Deploying a RAG Chatbot with Shared State and Storage Across Replicas](<https://devfeed.tech/articles/static-vs-dynamic-vs-continuous-batching-in-llms-clearly-explained-18242.md>)

Original publisher: [Read original article](<https://blog.dailydoseofds.com/p/static-vs-dynamic-vs-continuous-batching>)

Author: Avi Chawla

Published: 2026-09-01T21:11:23Z

Content type: tutorial

Language: en

Sources: [Daily Dose of Data Science](<https://devfeed.tech/sources/daily-dose-of-data-science.md>)

Topics: [Retrieval-Augmented Generation](<https://devfeed.tech/topics/retrieval-augmented-generation.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [LangChain](<https://devfeed.tech/topics/langchain.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [fastapi](<https://devfeed.tech/tags/fastapi.md>), [github](<https://devfeed.tech/tags/github.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [pgvector](<https://devfeed.tech/tags/pgvector.md>), [python](<https://devfeed.tech/tags/python.md>), [rag](<https://devfeed.tech/tags/rag.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

### AI overview

The article explains why a RAG chatbot that works locally can lose vector indexes, conversation history, and documents when deployed across multiple replicas. It recommends shared persistence for embeddings, checkpointed conversation state, and shared object storage, with examples using Postgres, pgvector, LangGraph, and object storage.

### Source excerpt

+ a popular LLM interview question.

## A Starlette middleware guide for FastAPI and Python developers

DevFeed: [A Starlette middleware guide for FastAPI and Python developers](<https://devfeed.tech/articles/a-starlette-middleware-guide-for-fastapi-and-python-developers-20057.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/starlette-middleware/>)

Author: Aditya Raj

Published: 2026-08-28T07:00:00Z

Content type: tutorial

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Python](<https://devfeed.tech/topics/python.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [auth](<https://devfeed.tech/tags/auth.md>), [cors](<https://devfeed.tech/tags/cors.md>), [developers](<https://devfeed.tech/tags/developers.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [guide](<https://devfeed.tech/tags/guide.md>), [logging](<https://devfeed.tech/tags/logging.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [python](<https://devfeed.tech/tags/python.md>), [python-articles](<https://devfeed.tech/tags/python-articles.md>), [starlette](<https://devfeed.tech/tags/starlette.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This guide explains how middleware works in Starlette and FastAPI applications. It covers built-in middleware, custom middleware using pure ASGI and BaseHTTPMiddleware, and execution order when multiple middleware layers process requests and responses.

### Source excerpt

Starlette middlewares let you apply logging, auth, and CORS across every route in a web app without duplicating code. This article covers Starlette's built-in middlewares, building custom ones with pure ASGI and BaseHTTPMiddleware, and the execution-order rules that keep your FastAPI applications secure and fast. Read on to learn how to build and order Starlette middlewares the right way.

## Keeping Documentation Honest with an OpenAPI Snapshot Diff

DevFeed: [Keeping Documentation Honest with an OpenAPI Snapshot Diff](<https://devfeed.tech/articles/keeping-documentation-honest-with-an-openapi-snapshot-diff-34111.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/openapi-docs-contract-test/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-08-25T07:00:00Z

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [JSON](<https://devfeed.tech/topics/json.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [ci](<https://devfeed.tech/tags/ci.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article explains how to keep API documentation aligned with a FastAPI application by generating its OpenAPI schema from the running code, comparing it with a committed snapshot in CI, normalizing the JSON diff, and requiring deliberate snapshot regeneration.

### Source excerpt

FastAPI app.openapi() snapshot test in pytest: fail CI when the live OpenAPI schema drifts from the committed openapi.snapshot.json.

## How Fly.io logging works and how to collect application logs

DevFeed: [How Fly.io logging works and how to collect application logs](<https://devfeed.tech/articles/a-comprehensive-guide-to-fly-io-logging-20051.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/fly-io-logging/>)

Author: Muhammed Ali

Published: 2026-08-13T07:00:00Z

Content type: tutorial

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [fly.io](<https://devfeed.tech/topics/fly-io.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [App](<https://devfeed.tech/topics/app.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops-articles](<https://devfeed.tech/tags/devops-articles.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [streams](<https://devfeed.tech/tags/streams.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

This tutorial explains how Fly.io collects and routes application logs, including output from standard output and standard error. It also demonstrates a FastAPI application that generates different log messages and describes handling logs with Honeybadger.

### Source excerpt

Logging is an import part of debugging an app. Without a good method of catching errors or logs in general, you would end up with uncaught issues and could also lose valuable customers in the process. Read this article to learn how to effectively handle logs on Fly.io.

## Building an AI Agent for LinkedIn Scraping & Candidate Sourcing

DevFeed: [Building an AI Agent for LinkedIn Scraping & Candidate Sourcing](<https://devfeed.tech/articles/building-an-ai-agent-for-linkedin-scraping-candidate-sourcing-39409.md>)

Original publisher: [Read original article](<https://blog.pranshu-raj.in/posts/linkedin-scraping-full/>)

Author: Pranshu Raj

Published: 2026-07-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Pranshu Raj - blog on backend systems, performance and sidequests](<https://devfeed.tech/sources/pranshu-raj-blog-on-backend-systems-performance-and-sidequests.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Python](<https://devfeed.tech/topics/python.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [async](<https://devfeed.tech/tags/async.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [github](<https://devfeed.tech/tags/github.md>), [llms](<https://devfeed.tech/tags/llms.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [python](<https://devfeed.tech/tags/python.md>), [recruiting](<https://devfeed.tech/tags/recruiting.md>), [scraping](<https://devfeed.tech/tags/scraping.md>)

### AI overview

A developer describes building an AI-powered LinkedIn candidate-sourcing agent for a hackathon. The Python and FastAPI application combines LinkedIn and GitHub profile discovery, six-factor candidate scoring, and Llama-powered personalized outreach, using external services for search and LinkedIn data retrieval.

### Source excerpt

How I built an AI agent that scrapes LinkedIn, scores candidates, and generates personalized outreach, a full recruiting sourcing pipeline in Python and FastAPI.

## Starlette vs FastAPI: what FastAPI actually adds

DevFeed: [Starlette vs FastAPI: what FastAPI actually adds](<https://devfeed.tech/articles/starlette-vs-fastapi-what-fastapi-actually-adds-20058.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/starlette-vs-fastapi/>)

Author: Farhan Hasin Chowdhury

Published: 2026-07-20T07:00:00Z

Content type: comparison

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Python](<https://devfeed.tech/topics/python.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [cors](<https://devfeed.tech/tags/cors.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [python](<https://devfeed.tech/tags/python.md>), [python-articles](<https://devfeed.tech/tags/python-articles.md>), [starlette](<https://devfeed.tech/tags/starlette.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This comparison explains how FastAPI builds on Starlette and Pydantic. Starlette provides the ASGI-based HTTP layer, while Pydantic handles typed data validation; FastAPI adds type-driven parameter parsing, dependency injection, and automatic OpenAPI documentation. It also discusses when using raw Starlette may be preferable.

### Source excerpt

FastAPI is built on Starlette, but most developers never look at what's underneath. Learn what FastAPI actually adds on top of Starlette and Pydantic, what comes straight from Starlette, and when dropping down to raw Starlette makes more sense than pulling in the full stack.

## OpenAPI, ORM, SVG and Lottie

DevFeed: [OpenAPI, ORM, SVG and Lottie](<https://devfeed.tech/articles/openapi-orm-svg-and-lottie-19231.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/build-time-codegen/>)

Author: Shai Almog

Published: 2026-06-01T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Nest](<https://devfeed.tech/topics/nestjs.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [lottie](<https://devfeed.tech/tags/lottie.md>), [maven-plugin](<https://devfeed.tech/tags/maven-plugin.md>), [net](<https://devfeed.tech/tags/net.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [orm](<https://devfeed.tech/tags/orm.md>), [rest](<https://devfeed.tech/tags/rest.md>), [spring](<https://devfeed.tech/tags/spring.md>), [svg](<https://devfeed.tech/tags/svg.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A Codename One release follow-up describes a shared build-time code generation pipeline for OpenAPI client generation, a SQLite ORM, JSON and XML mappers, SVG and Lottie transcoders, and a declarative router. The pipeline emits typed Java from annotations or declarative source files without reflection.

### Source excerpt

An OpenAPI client generator, a JPA-shaped SQLite ORM, JAXB-shaped JSON / XML mappers, build-time SVG / Lottie transcoders, and a declarative router with deep links. All on the same build-time codegen pipeline.

## How groundcover built a durable alert dispatch system with Temporal

DevFeed: [How groundcover built a durable alert dispatch system with Temporal](<https://devfeed.tech/articles/how-groundcover-built-a-durable-alert-dispatch-system-with-temporal-35856.md>)

Original publisher: [Read original article](<https://temporal.io/blog/how-groundcover-built-a-durable-alert-dispatch-system-with-temporal>)

Author: Yosi Zelensky

Published: 2026-05-29T00:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [observability](<https://devfeed.tech/topics/observability.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Go](<https://devfeed.tech/topics/go.md>), [Python](<https://devfeed.tech/topics/python.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [community](<https://devfeed.tech/tags/community.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [go](<https://devfeed.tech/tags/go.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [observability](<https://devfeed.tech/tags/observability.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

groundcover describes rebuilding its alert Dispatch Center on Temporal for a managed BYOC observability platform. The article covers alert routing, lifecycle notifications, durable recovery, high-throughput fan-out, and ordering across monitored Kubernetes clusters.

### Source excerpt

How groundcover rebuilt their alert Dispatch Center on self-hosted Temporal -- two-level Workflows, deterministic IDs as routing, and at-least-once delivery.

## How to Accept Payments in a FastAPI Backend

DevFeed: [How to Accept Payments in a FastAPI Backend](<https://devfeed.tech/articles/how-to-accept-payments-in-a-fastapi-backend-9532.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/accept-payments-fastapi/>)

Author: Ayush Agarwal

Published: 2026-03-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [Python](<https://devfeed.tech/topics/python.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [API](<https://devfeed.tech/topics/api.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [async](<https://devfeed.tech/tags/async.md>), [backend](<https://devfeed.tech/tags/backend.md>), [checkout](<https://devfeed.tech/tags/checkout.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [merchant-of-record](<https://devfeed.tech/tags/merchant-of-record.md>), [payment-gateway](<https://devfeed.tech/tags/payment-gateway.md>), [payments](<https://devfeed.tech/tags/payments.md>), [python](<https://devfeed.tech/tags/python.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [tax](<https://devfeed.tech/tags/tax.md>), [validation](<https://devfeed.tech/tags/validation.md>), [verification](<https://devfeed.tech/tags/verification.md>), [webhooks](<https://devfeed.tech/tags/webhooks.md>)

### AI overview

A tutorial on integrating Dodo Payments into a FastAPI backend. It covers asynchronous checkout sessions and webhooks, Pydantic request validation, signature verification, and using verified webhook events as the source of truth for payment state.

### Source excerpt

Learn how to integrate Dodo Payments into your FastAPI backend with async webhook handlers, Pydantic validation, and secure signature verification.

## Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama

DevFeed: [Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama](<https://devfeed.tech/articles/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer-25154.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer/>)

Author: Ishan Khanna

Published: 2026-03-16T20:55:45Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [Ollama](<https://devfeed.tech/topics/ollama.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [Python](<https://devfeed.tech/topics/python.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [CircuitPython](<https://devfeed.tech/topics/circuitpython.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [audio](<https://devfeed.tech/tags/audio.md>), [circuitpython](<https://devfeed.tech/tags/circuitpython.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llms](<https://devfeed.tech/tags/llms.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [python](<https://devfeed.tech/tags/python.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [transcription](<https://devfeed.tech/tags/transcription.md>), [whisper](<https://devfeed.tech/tags/whisper.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This tutorial describes a local voice dictation device built with a Raspberry Pi Zero W, Raspberry Pi Pico, and an INMP441 microphone. Audio is sent over Wi-Fi to a Windows PC for Whisper transcription and Ollama text cleanup, then returned through a USB keyboard interface via a KVM switch. The author reports about $40 in hardware costs and under 700 milliseconds of end-to-end latency.

### Source excerpt

I spend most of my day talking to AI agents in the terminal. Claude Code, ChatGPT, aider -- you name it. And every time I have to type out a long, detailed prompt explaining what I want refactored, I think: why am I typing this when I could just say

## Key takeaways from the PyAI conference on AI evaluation, software design, and open-source maintenance

DevFeed: [Key takeaways from the PyAI conference on AI evaluation, software design, and open-source maintenance](<https://devfeed.tech/articles/learnings-from-the-pyai-conference-21748.md>)

Original publisher: [Read original article](<http://blog.pamelafox.org/2026/03/learnings-from-pyai-conference.html>)

Author: Pamela Fox (noreply@blogger.com)

Published: 2026-03-12T06:40:00Z

Content type: article

Language: en

Sources: [Pamela Fox](<https://devfeed.tech/sources/pamela-fox.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Python](<https://devfeed.tech/topics/python.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [MCP](<https://devfeed.tech/topics/mcp.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-evals](<https://devfeed.tech/tags/ai-evals.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [conference](<https://devfeed.tech/tags/conference.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [github](<https://devfeed.tech/tags/github.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

The article summarizes lessons from PyAI conference sessions on evaluating AI systems, designing Python software for maintainability by coding agents, and handling AI-generated pull requests in open-source projects. It recommends validating LLM judges with labeled data and conventional evaluation metrics, using clearer software abstractions, and developing systems to triage low-quality contributions.

### Source excerpt

I recently spoke at the PyAI conference, put on by the good folks at Prefect and Pydantic, and I learnt so much from the talks I attended. Here are my top takeaways from the sessions that I watched: AI Evals Pitfalls Hamel Husain 📺 Watch the video recording | 📊 View slides Hamel cautioned against blindly using automated evaluation frameworks and built-in evaluators (like helpfulness and coherence). Instead, we should adopt a data science approach to evaluation: explore the data, discover what's actually breaking, identify the most important metric, and iterate as new data comes in. We shouldn't just trust an LLM-as-a-judge to be given accurate scores. Instead, we should validate it like we would validate a ML classifier- with labeled data, train/dev/test splits, and precision/recall metrics. LLM-judges should always give pass/fail results, instead of 1-5 scores, so that there's no ambiguity in their judgment. When generating synthetic data, first come up with dimensions (such as persona), generate combinations based off dimensions, and convert those into realistic queries. Hamel created evals-skills, a collection of skills for coding agents that can be run against evaluation pipelines to find issues like poorly designed LLM-judges. Build Reasonable Software Jeremiah Lowin (FastMCP/Prefect) 📺 Watch the video recording Write your Python programs in a way that coding agents can reason about them, so that they can more easily maintain and build them. For example, FastMCP v2 SDK was not well designed (bad abstractions) so a new CodeMod feature required 4,000 lines of code. In the new FastMCP v3 SDK (same functional API, different abstractions backing it), the same feature only required 500 lines of code. To make Python FastMCP servers more Pythonic, Jeremiah is developing a new package for MCP apps which includes the most common UIs (forms/tables/charts), called PreFab: https://github.com/PrefectHQ/prefab Panel: Open Source in the Age of AI Guido van Rossum (CPython), Sa

## Recent Guides on AI Inference and FastAPI Backend Engineering

DevFeed: [Recent Guides on AI Inference and FastAPI Backend Engineering](<https://devfeed.tech/articles/my-best-recent-guides-for-ai-engineers-35017.md>)

Original publisher: [Read original article](<https://read.theaimerge.com/p/my-best-recent-guides-for-ai-engineers>)

Author: Alex Razvant

Published: 2025-11-29T14:02:54Z

Content type: article

Language: en

Sources: [Neural Bits](<https://devfeed.tech/sources/neural-bits.md>)

Topics: [AI Development](<https://devfeed.tech/topics/ai-development.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Inference Performance](<https://devfeed.tech/topics/inference-performance.md>), [backends](<https://devfeed.tech/topics/backends.md>), [model-deployment](<https://devfeed.tech/topics/model-deployment.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [Retrieval Augmented Generation (RAG)](<https://devfeed.tech/topics/retrieval-augmented-generation-rag.md>)

Tags: [ai-engineer](<https://devfeed.tech/tags/ai-engineer.md>), [ai-inference](<https://devfeed.tech/tags/ai-inference.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [guides](<https://devfeed.tech/tags/guides.md>), [inference](<https://devfeed.tech/tags/inference.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

A curated collection of recent guides for AI engineers. It highlights FastAPI and Pydantic practices for building maintainable AI and ML backends, along with inference engines and serving frameworks for deploying models in production across different scales and infrastructure.

### Source excerpt

A curated list of the most actionable guides I've published in the past months.

## Moving from Django DRF to Ninja API / Pydantic

DevFeed: [Moving from Django DRF to Ninja API / Pydantic](<https://devfeed.tech/articles/moving-from-django-drf-to-ninja-api-pydantic-30798.md>)

Original publisher: [Read original article](<https://devblog.kogan.com/blog/moving-from-django-drf-to-ninja-api-pydantic>)

Author: Michael Sidharta

Published: 2025-11-10T05:35:43Z

Content type: comparison

Language: en

Sources: [Kogan.com](<https://devfeed.tech/sources/kogan-com.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [API](<https://devfeed.tech/topics/api.md>), [Python](<https://devfeed.tech/topics/python.md>), [Development](<https://devfeed.tech/topics/development.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>)

Tags: [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [django](<https://devfeed.tech/tags/django.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [python](<https://devfeed.tech/tags/python.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

This article examines moving from Django REST Framework API patterns to Django Ninja API and Pydantic. It describes motivations including reducing boilerplate, improving performance for some use cases, using modern Python type hints and data validation, and enhancing developer experience. It also outlines Django Ninja's type-based validation, automatic OpenAPI documentation, performance focus, and simplified endpoint definitions.

### Source excerpt

As our project grows, we're always looking for ways to streamline development, improve performance, and enhance the developer experience. Recently, we've been exploring a shift from our traditional Django REST Framework (DRF) API patterns to a combination of Django Ninja API and Pydantic. This blog post will delve into our motivations for this change, the benefits we've observed, and some considerations for others contemplating a similar transition. Why Consider a Change from Django DRF? Django REST Framework has been a robust and widely adopted solution for building APIs with Django. It provides a comprehensive set of tools, including serializers, viewsets, and excellent browser-based API interfaces. However, as our needs evolved, we identified areas where a different approach could offer advantages: Boilerplate Code: While DRF offers powerful abstractions, creating serializers, views, and viewsets can sometimes lead to a significant amount of boilerplate code, especially for simpler APIs. Performance: For certain use cases, the overhead of DRF's serializer validation and rendering can impact performance, particularly in high-throughput scenarios. Modern Python Features: We were keen to leverage modern Python features like type hints and data validation more extensively, which are core to Pydantic. Developer Experience: A more concise and explicit way to define API endpoints and data structures could improve developer productivity and reduce potential errors. Introducing Django Ninja API and PydanticDjango Ninja API Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints. It's heavily inspired by FastAPI and offers a number of compelling features: Type Hinting for API Endpoints: You define your request and response models using Pydantic, and Ninja automatically validates and serializes the data based on these type hints. Automatic OpenAPI (Swagger) Documentation: Just like FastAPI, Ninja generates interactive API documentation out o

## Building Agents With Heroku AI and Pydantic AI

DevFeed: [Building Agents With Heroku AI and Pydantic AI](<https://devfeed.tech/articles/building-agents-with-heroku-ai-and-pydantic-ai-26380.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/building-agents-with-heroku-ai-and-pydantic-ai/>)

Author: Anush DSouza

Published: 2025-08-08T16:33:37Z

Content type: tutorial

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Agent Framework](<https://devfeed.tech/topics/agent-framework.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [A2A protocol](<https://devfeed.tech/topics/a2a-protocol.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [a2a](<https://devfeed.tech/tags/a2a.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [claude](<https://devfeed.tech/tags/claude.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-ai](<https://devfeed.tech/tags/heroku-ai.md>), [managed-inference-and-agents](<https://devfeed.tech/tags/managed-inference-and-agents.md>), [mcp-on-heroku](<https://devfeed.tech/tags/mcp-on-heroku.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [model-context-protocol-mcp](<https://devfeed.tech/tags/model-context-protocol-mcp.md>), [news](<https://devfeed.tech/tags/news.md>), [product-features](<https://devfeed.tech/tags/product-features.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

This tutorial explains how to build production-grade AI agents with Heroku Managed Inference and Agents and the Pydantic AI Python framework. It covers Claude model integration, secure code execution, OpenAI-compatible APIs, environment-variable configuration, MCP client and server support, and exposing agents through the A2A protocol.

### Source excerpt

Building production-grade AI applications can be complex, but with Heroku and Pydantic AI, developers gain a powerful and reliable solution for integrating advanced AI capabilities. Heroku makes it easy to integrate AI into your applications with Heroku Managed Inference and Agents. With a single click, you can attach powerful Large Language Models like Anthropic's Claude [...] The post Building Agents With Heroku AI and Pydantic AI appeared first on Heroku.

## Launching a Web UI for app.build

DevFeed: [Launching a Web UI for app.build](<https://devfeed.tech/articles/launching-a-web-ui-for-app-build-5490.md>)

Original publisher: [Read original article](<https://neon.com/blog/launching-a-web-ui-for-app-build>)

Author: David Gomes

Published: 2025-07-31T17:55:47Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Web](<https://devfeed.tech/topics/web.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [React](<https://devfeed.tech/topics/react.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Laravel](<https://devfeed.tech/topics/laravel.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [php](<https://devfeed.tech/tags/php.md>), [product](<https://devfeed.tech/tags/product.md>), [python](<https://devfeed.tech/tags/python.md>), [react](<https://devfeed.tech/tags/react.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

app.build is launching a web interface that lets users generate and deploy React, Laravel, and FastAPI applications from prompts without configuration. The article describes its open-source AI agent architecture, supported technology stacks, planned web UI improvements, CLI deprecation, authentication and persistent storage for the React + tRPC stack, and future support for multiple deployment platforms.

### Source excerpt

We're very excited to announce that app.build is launching a web interface that builds and deploys React, Laravel or FastAPI applications with zero configuration required! Just visit the website, type your prompt, and we'll get your app built and deployed: This makes the experien...

## Scaling recommendations service at OLX

DevFeed: [Scaling recommendations service at OLX](<https://devfeed.tech/articles/scaling-recommendations-service-at-olx-20390.md>)

Original publisher: [Read original article](<https://tech.olx.com/scaling-recommendations-service-at-olx-db4548813e3a?source=rss----761b019b483f---4>)

Author: Jordi Esteve Sorribas

Published: 2025-07-08T15:03:23Z

Content type: article

Language: en

Sources: [OLX](<https://devfeed.tech/sources/olx.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Python](<https://devfeed.tech/topics/python.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [async](<https://devfeed.tech/topics/async.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [backend](<https://devfeed.tech/tags/backend.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [latency](<https://devfeed.tech/tags/latency.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [python](<https://devfeed.tech/tags/python.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [scalability](<https://devfeed.tech/tags/scalability.md>)

### AI overview

This article describes how OLX scaled a Python FastAPI recommendations service to handle tens of thousands of requests per second with p99 latency below 10 ms. It discusses the service's ownership, data sources, and the use of asynchronous non-blocking I/O.

### Source excerpt

Optimizing FastAPI at Scale: Lessons from OLX's Recommendation PlatformPhoto by Rosy KoIn distributed systems, there is a motto that says 'you are as slow as your slowest tasks'. In Python, thanks to the notorious Global Interpreter Lock (GIL), this issue is amplified: 'your slowest task will make every other task slower'. In this article, I'll walk you through the optimizations we made to scale a FastAPI service that now handles tens of thousands of requests per second, achieving a p99 latency under 10ms.Introduction OLX is a global online marketplace that enables users to buy and sell goods and services, primarily through classified ads. We have a clear vision: to create leading marketplace ecosystems enabled by tech, powered by trust, and loved by customers. Every month, we engage 45 million app users and support over 73 million active listings. To help users seamlessly navigate this vast inventory, we've integrated recommendation systems across multiple touchpoints in all our platforms. These recommendations are powered by the recommendations platform, which is responsible for delivering personalized suggestions across various contexts. Most, if not all, of these are served through a dedicated recommendations service. Over the past few months, we've built and scaled this system within the data team, successfully shifting the ownership from a shared backend service to a service fully owned by the team to gain greater autonomy and flexibility. The team decided to build it with Python, as it is the go-to language for the data and machine learning team and is the most widely used language within both the team and the broader domain. While Python allows for rapid development and prototyping, working at scale has surfaced several challenges and trade-offs. It hasn't been an easy journey, but it's one that's taught us a lot and significantly matured our infrastructure and processes. To Async or Not Async The service consumes data from various sources: ScyllaDB, DynamoD

## Why Directly Generating MCP Servers from OpenAPI Schemas Can Be Problematic

DevFeed: [Why Directly Generating MCP Servers from OpenAPI Schemas Can Be Problematic](<https://devfeed.tech/articles/auto-generating-mcp-servers-from-openapi-schemas-yay-or-nay-4999.md>)

Original publisher: [Read original article](<https://neon.com/blog/autogenerating-mcp-servers-openai-schemas>)

Author: David Gomes

Published: 2025-05-01T19:07:18Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [API](<https://devfeed.tech/topics/api.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [GitHub API](<https://devfeed.tech/topics/github-api.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [cursor](<https://devfeed.tech/topics/cursor.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [api](<https://devfeed.tech/tags/api.md>), [claude](<https://devfeed.tech/tags/claude.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [github](<https://devfeed.tech/tags/github.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [product](<https://devfeed.tech/tags/product.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

The article examines whether existing REST APIs and OpenAPI schemas should be converted directly into Model Context Protocol servers. It argues that one-to-one generation can overwhelm language models with too many tools and complex JSON parameters, making tool selection unreliable, especially for large or sensitive APIs.

### Source excerpt

Should we be generating Model Context Protocol (MCP) servers directly from existing API specs? MCP is designed to let AI agents like those in Claude, Cursor, and Windsurf interact with tools and APIs. So, can we just treat our existing REST APIs as the interface for LLMs and enti...

## Why some Go teams use frameworks for structure and consistency

DevFeed: [Why some Go teams use frameworks for structure and consistency](<https://devfeed.tech/articles/go-doesn-t-believe-in-frameworks-but-some-teams-still-need-them-17806.md>)

Original publisher: [Read original article](<https://encore.dev/blog/go-frameworks>)

Author: Marcus Kohlberg

Published: 2025-04-30T00:00:00Z

Content type: opinion

Language: en

Sources: [Encore Updates](<https://devfeed.tech/sources/encore-updates.md>)

Topics: [Go](<https://devfeed.tech/topics/go.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [Django](<https://devfeed.tech/topics/django.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [backend-development](<https://devfeed.tech/tags/backend-development.md>), [development](<https://devfeed.tech/tags/development.md>), [django](<https://devfeed.tech/tags/django.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [go](<https://devfeed.tech/tags/go.md>), [rails](<https://devfeed.tech/tags/rails.md>)

### AI overview

This opinion article examines the trade-off between Go's simplicity and the lack of centralized conventions for project structure, routing, migrations, and other backend tasks. It argues that teams may benefit from convention-driven frameworks such as Encore, while comparing Go's approach with Rails, Django, and FastAPI.

### Source excerpt

Simplicity can be a burden sometimes

## A denial of service Regex breaks FastAPI security

DevFeed: [A denial of service Regex breaks FastAPI security](<https://devfeed.tech/articles/a-denial-of-service-regex-breaks-fastapi-security-7897.md>)

Original publisher: [Read original article](<https://snyk.io/blog/dos-regex-breaks-fastapi-security/>)

Author: Liran Tal

Published: 2024-07-31T13:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Python](<https://devfeed.tech/topics/python.md>), [snyk](<https://devfeed.tech/topics/snyk.md>), [DDoS](<https://devfeed.tech/topics/ddos.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [blog](<https://devfeed.tech/tags/blog.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article explains how insecure regular expressions can cause regular expression denial of service (ReDoS) vulnerabilities in FastAPI applications. It describes how malicious input can trigger excessive evaluation time, making an application slow or unresponsive, and discusses using Snyk to identify and mitigate these risks in Python code and third-party dependencies.

### Source excerpt

In this blog post, we are going to delve deep into the world of application security, specifically focusing on a vulnerability that can deteriorate FastAPI security: Denial of service (DoS) caused by insecure regular expressions (regex).

[Next page](<https://devfeed.tech/tags/fastapi.md?cursor=WyIyMDI0LTA3LTMxVDEzOjAwOjAwKzAwOjAwIiwgImVhZTI0NGEwLTBiNGUtNGNiZS05MTI3LTZhNWYzNmEwNzI0NCJd>)