# rate-limiting

Published articles for rate-limiting.

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

## How API Design Is Evolving for AI Agents, Security, Reliability, and Compliance

DevFeed: [How API Design Is Evolving for AI Agents, Security, Reliability, and Compliance](<https://devfeed.tech/articles/6-ways-traditional-api-design-has-changed-forever-34948.md>)

Original publisher: [Read original article](<https://nordicapis.com/6-ways-traditional-api-design-has-changed-forever/>)

Author: J Simpson

Published: 2026-09-17T07:00:00Z

Content type: article

Language: en

Sources: [Nordic APIs](<https://devfeed.tech/sources/nordic-apis.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [api](<https://devfeed.tech/tags/api.md>), [api-architecture](<https://devfeed.tech/tags/api-architecture.md>), [api-as-a-product](<https://devfeed.tech/tags/api-as-a-product.md>), [api-design](<https://devfeed.tech/tags/api-design.md>), [api-discovery](<https://devfeed.tech/tags/api-discovery.md>), [api-security](<https://devfeed.tech/tags/api-security.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [blog](<https://devfeed.tech/tags/blog.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This article examines six ways API design is evolving as APIs serve AI agents and other machine consumers, with implications for security, reliability, and regulatory compliance.

### Source excerpt

For over two decades, API design and architecture remained remarkably consistent. Perhaps it's the outsized influence of Roy Fielding's RESTful dissertation, but API designers have stuck to the principles of stateless architecture, resource-based endpoints, and HTTP commands to an impressive degree. That's all starting to change, now that we've radically recontextualized the way we use ...

## Patching This Site's MCP Endpoint and Limiting What It Can Do

DevFeed: [Patching This Site's MCP Endpoint and Limiting What It Can Do](<https://devfeed.tech/articles/patching-this-site-s-mcp-endpoint-and-limiting-what-it-can-do-30870.md>)

Original publisher: [Read original article](<https://brent.leekley.me/blog/mcp-patch-and-limits/>)

Author: Brent Leekley

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

Content type: tutorial

Language: en

Sources: [brent.leekley.me blog](<https://devfeed.tech/sources/brent-leekley-me-blog.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [API](<https://devfeed.tech/topics/api.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [aeo](<https://devfeed.tech/tags/aeo.md>), [agent-ready-website](<https://devfeed.tech/tags/agent-ready-website.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [agents](<https://devfeed.tech/tags/agents.md>), [api](<https://devfeed.tech/tags/api.md>), [api-security](<https://devfeed.tech/tags/api-security.md>), [clients](<https://devfeed.tech/tags/clients.md>), [json-rpc](<https://devfeed.tech/tags/json-rpc.md>), [logs](<https://devfeed.tech/tags/logs.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [retry](<https://devfeed.tech/tags/retry.md>), [server](<https://devfeed.tech/tags/server.md>), [streamable-http](<https://devfeed.tech/tags/streamable-http.md>), [webmcp](<https://devfeed.tech/tags/webmcp.md>)

### AI overview

This article explains how to patch a website's public, unauthenticated MCP endpoint. It covers updating to the current protocol revision while retaining compatibility with older clients, and applying limits including read-only tools, per-IP rate limiting, request-size caps, Origin checks, POST-only access, non-reflected strings, and privacy-preserving logs.

### Source excerpt

An MCP server on your website is a public, unauthenticated API. Bringing one to the current protocol revision while keeping older clients working, and the seven limits that bound it: read-only tools, a per-IP rate limit that always sends Retry-After, hard caps on body and argument size, an https-only Origin check, POST only, no reflected strings, and logs that store a salted hash instead of an address.

## How to Deal With Errors and Failures in LLM-Powered Applications

DevFeed: [How to Deal With Errors and Failures in LLM-Powered Applications](<https://devfeed.tech/articles/how-to-deal-with-errors-and-failures-in-llm-powered-applications-17991.md>)

Original publisher: [Read original article](<https://blog.bytebytego.com/p/how-to-deal-with-errors-and-failures>)

Author: ByteByteGo

Published: 2026-09-07T15:31:35Z

Content type: tutorial

Language: en

Sources: [ByteByteGo](<https://devfeed.tech/sources/bytebytego.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [App](<https://devfeed.tech/topics/app.md>), [Language models](<https://devfeed.tech/topics/language-models.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [concurrency-control](<https://devfeed.tech/tags/concurrency-control.md>), [errors](<https://devfeed.tech/tags/errors.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [llm](<https://devfeed.tech/tags/llm.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>), [retry](<https://devfeed.tech/tags/retry.md>)

### AI overview

A tutorial on error handling and resiliency for LLM-powered applications. It covers failures such as unavailable networks, rejected requests, invalid JSON, hallucinations, slow responses, timeouts, retries, fallbacks, circuit breakers, rate limiting, queues, concurrency control, safe tool calls, and response streaming.

### Source excerpt

Apart from normal processing, the application also sends data to a large language model (LLM). It then uses the model's response to carry out a task.

## Rootless Podman: Preserving Source IPs

DevFeed: [Rootless Podman: Preserving Source IPs](<https://devfeed.tech/articles/rootless-podman-preserving-source-ips-12852.md>)

Original publisher: [Read original article](<https://blog.podman.io/2026/09/rootless-podman-preserving-source-ips/>)

Author: Jan Rodak

Published: 2026-09-04T14:25:02Z

Content type: article

Language: en

Sources: [blog.podman.io](<https://devfeed.tech/sources/blog-podman-io.md>)

Topics: [podman](<https://devfeed.tech/topics/podman.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Networks](<https://devfeed.tech/topics/networks.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [Logging](<https://devfeed.tech/topics/logging.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [bridge](<https://devfeed.tech/tags/bridge.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [ipv4](<https://devfeed.tech/tags/ipv4.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [logging](<https://devfeed.tech/tags/logging.md>), [networks](<https://devfeed.tech/tags/networks.md>), [podman](<https://devfeed.tech/tags/podman.md>), [port](<https://devfeed.tech/tags/port.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [routing](<https://devfeed.tech/tags/routing.md>), [tips-and-tricks](<https://devfeed.tech/tags/tips-and-tricks.md>)

### AI overview

This article explains how Pesto, a companion tool from the passt project, addresses Rootless Podman's inability to preserve incoming client source IPs on bridge networks. Pesto updates pasta's forwarding table so traffic reaches containers without source-address rewriting, while retaining existing port-mapping capabilities. The article also documents configuration steps, traffic flow, supported networking features, and limitations when switching from the current forwarder.

### Source excerpt

Rootless Podman has a long-standing limitation reported since 2020: containers on bridge networks can't see the real source IP of incoming connections. The `rootlessport` userspace proxy rewrites the source to the container's own subnet address, breaking IP-based access control, logging, and rate limiting. Pesto, a new companion tool from the passt project solves this. Pesto [...]

## Fixed window, sliding window, or token bucket? Choosing a rate limit strategy in Appwrite Firewall

DevFeed: [Fixed window, sliding window, or token bucket? Choosing a rate limit strategy in Appwrite Firewall](<https://devfeed.tech/articles/fixed-window-sliding-window-or-token-bucket-choosing-a-rate-limit-strategy-in-appwrite-firewall-16479.md>)

Original publisher: [Read original article](<https://appwrite.io/blog/post/firewall-rate-limit-strategies>)

Author: Atharva Deosthale

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

Content type: tutorial

Language: en

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

Topics: [Appwrite](<https://devfeed.tech/topics/appwrite.md>), [Firewall](<https://devfeed.tech/topics/firewall.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [firewall](<https://devfeed.tech/tags/firewall.md>), [http](<https://devfeed.tech/tags/http.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [security](<https://devfeed.tech/tags/security.md>), [strategy](<https://devfeed.tech/tags/strategy.md>)

### AI overview

This article explains the fixed window, sliding window, and token bucket rate-limiting strategies supported by Appwrite Firewall. It compares how they handle bursts and time-window boundaries, describes IP- and User ID-based limits, and explains how to choose a strategy.

### Source excerpt

Appwrite Firewall rate limit rules support three strategies. Learn how fixed window, sliding window, and token bucket work, where each one breaks down, and how to pick the right one for your traffic.

## Shared Host Ephemeral Port Exhaustion Caused Overnight Job Failures

DevFeed: [Shared Host Ephemeral Port Exhaustion Caused Overnight Job Failures](<https://devfeed.tech/articles/we-ran-out-of-tcp-ports-at-1-30-am-the-crack-was-tcp-tw-reuse-0-26518.md>)

Original publisher: [Read original article](<https://medium.com/engineering-housing/we-ran-out-of-tcp-ports-at-1-30-am-the-crack-was-tcp-tw-reuse-0-54952bf5f7bd?source=rss----3a69e32e2594---4>)

Author: PULKIT GARG

Published: 2026-08-11T05:58:23Z

Content type: article

Language: en

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

Topics: [ephemeral ports](<https://devfeed.tech/topics/ephemeral-ports.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>)

Tags: [incident](<https://devfeed.tech/tags/incident.md>), [port](<https://devfeed.tech/tags/port.md>), [production-issue](<https://devfeed.tech/tags/production-issue.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [tcp](<https://devfeed.tech/tags/tcp.md>)

### AI overview

An engineering incident report explains how a neighboring bulk job exhausted the shared operating system's ephemeral TCP port pool, causing scheduled background jobs to fail until the temporary traffic pressure subsided.

### Source excerpt

A neighbor's bulk job drained every ephemeral port on a shared box. Twice. Here's the one kernel setting that would have stopped it -- and the architecture that makes it a non-issue. At 1:38 AM, one of our background-job services started failing. Scheduled jobs -- the nudges and reminders we send users overnight -- began throwing an error most engineers rarely see: Errno::EADDRNOTAVAIL -- Cannot assign requested address Not "connection refused." Not "timeout." Cannot assign requested address. The machine wasn't saying the other end was down. It was saying it had run out of addresses to call from. Here's the strange part: we hadn't deployed anything. Our code was untouched for days. And by ~3 AM it healed itself, with nobody doing a thing. Two nights later, same window, it happened again. The bug wasn't in our service. It was in a service we don't own -- and don't even talk to. Act 1: A crime scene with no suspect ~7,800 job executions failed across the two nights. The first night slipped in under the alerting threshold entirely -- we only found it in the errors inbox after the fact. Everything about it was confusing: Our service hadn't changed. The internal APIs we call were all healthy. It happened in a tight window (~1:30-3:00 AM), then vanished. No human fixed it. It just... stopped. An outage that fixes itself is telling you something important: the thing that broke wasn't yours, and the pressure that caused it was temporary. Act 2: The noisy neighbor That service doesn't run on its own machine. It shares one box with about ten other apps -- a normal, cost-efficient setup. What's easy to forget is what they silently share: not just CPU and memory, but the operating system's ephemeral port pool. Quick refresher. Every time a program opens an outbound TCP connection, the OS assigns it a temporary "ephemeral" source port. That pool is finite -- by default, roughly 28,000 ports. And on a shared box, every app draws from the same pool. Ephemeral ports are an unmonitored, multi

## Palantir's Elasticsearch reindexing system supports online index rebuilds

DevFeed: [Palantir's Elasticsearch reindexing system supports online index rebuilds](<https://devfeed.tech/articles/palantir-built-an-elasticsearch-indexing-machine-18130.md>)

Original publisher: [Read original article](<https://hungrymindsdev.substack.com/p/palantir-built-an-elasticsearch-indexing>)

Author: Alexandre Zajac

Published: 2026-06-15T15:30:53Z

Content type: article

Language: en

Sources: [Hungry Minds](<https://devfeed.tech/sources/hungry-minds.md>)

Topics: [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Database](<https://devfeed.tech/topics/database.md>), [observability](<https://devfeed.tech/topics/observability.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [database](<https://devfeed.tech/tags/database.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [observability](<https://devfeed.tech/tags/observability.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

The article describes Palantir's Elasticsearch reindexing system, which rebuilds large search indices while live traffic continues. It uses shadow indices, parallel database-to-index pipelines, multidimensional rate limiting, crash-safe state tracking, and support for multiple clusters.

### Source excerpt

PLUS: Claude skills guide 👨💻, Call queue architecture ⚡, when NOT to use Kafka 👨💻

## Post Mortem: HTTP Request Smuggling Vulnerability

DevFeed: [Post Mortem: HTTP Request Smuggling Vulnerability](<https://devfeed.tech/articles/post-mortem-http-request-smuggling-vulnerability-22335.md>)

Original publisher: [Read original article](<https://crystal-lang.org/2026/05/26/http-request-smuggling-vulnerability-in-http-server/>)

Author: Julien Portalier

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

Content type: article

Language: en

Sources: [Crystal](<https://devfeed.tech/sources/crystal.md>)

Topics: [Post Mortem](<https://devfeed.tech/topics/post-mortem.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [Crystal](<https://devfeed.tech/topics/crystal.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Security](<https://devfeed.tech/topics/security.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [access-control](<https://devfeed.tech/tags/access-control.md>), [http](<https://devfeed.tech/tags/http.md>), [post-mortem](<https://devfeed.tech/tags/post-mortem.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

This post-mortem describes an HTTP request smuggling vulnerability in Crystal's HTTP server. The parser mishandled requests containing conflicting framing headers, allowing request injection between a reverse proxy and a Crystal server under specific proxy conditions. The issue was patched in Crystal 1.20.0 and 1.19.2.

### Source excerpt

On 12 April 2026, we received a vulnerability report regarding an HTTP request smuggling vulnerability in HTTP::Server.

## Rate-limit downstream APIs with separate Task Queues

DevFeed: [Rate-limit downstream APIs with separate Task Queues](<https://devfeed.tech/articles/rate-limit-downstream-apis-with-separate-task-queues-35944.md>)

Original publisher: [Read original article](<https://temporal.io/blog/rate-limit-downstream-apis>)

Author: Cecil Phillip

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

Content type: tutorial

Language: en

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

Topics: [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [API](<https://devfeed.tech/topics/api.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [queues](<https://devfeed.tech/tags/queues.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [service](<https://devfeed.tech/tags/service.md>), [temporal-concepts](<https://devfeed.tech/tags/temporal-concepts.md>)

### AI overview

This tutorial explains how to use separate Temporal Task Queues with global and optional per-Worker rate limits, plus concurrency limits, to keep Activities within downstream API quotas and help prevent 429 errors and account issues.

### Source excerpt

Stop hitting 429s on downstream APIs. Use rate-limited Temporal Task Queues to keep Activities under SendGrid, Stripe, and OpenAI quotas.

## Replay '26: My introduction to Temporal

DevFeed: [Replay '26: My introduction to Temporal](<https://devfeed.tech/articles/replay-26-my-introduction-to-temporal-35954.md>)

Original publisher: [Read original article](<https://temporal.io/blog/replay-26-introduction-to-temporal>)

Author: Jap Singh

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

Content type: opinion

Language: en

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

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Hackathon](<https://devfeed.tech/topics/hackathon.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Java](<https://devfeed.tech/topics/java.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [company](<https://devfeed.tech/tags/company.md>), [conference](<https://devfeed.tech/tags/conference.md>), [experience](<https://devfeed.tech/tags/experience.md>), [hackathon](<https://devfeed.tech/tags/hackathon.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [software](<https://devfeed.tech/tags/software.md>), [temporal-voices](<https://devfeed.tech/tags/temporal-voices.md>), [vibe-coding](<https://devfeed.tech/tags/vibe-coding.md>)

### AI overview

A new Temporal employee recounts attending Replay '26 during their first week at the company. The article highlights developer discussions about AI-heavy workflows, rate limiting, enterprise use cases, clinical-trial monitoring, and workshops in Java, Go, and Python.

### Source excerpt

Jap Singh joined Temporal and found himself at Replay '26 in his first week. His experience changed his view on the company.

## How Agentic AI Can Bypass the Application Layer's Database Protections

DevFeed: [How Agentic AI Can Bypass the Application Layer's Database Protections](<https://devfeed.tech/articles/the-application-layer-used-to-protect-you-now-it-can-t-34126.md>)

Original publisher: [Read original article](<https://flashdba.com/2026/05/11/the-application-layer-used-to-protect-you-now-it-cant/>)

Author: flashdba

Published: 2026-05-11T11:06:56Z

Content type: opinion

Language: en

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

Topics: [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [databases-and-agentic-ai](<https://devfeed.tech/tags/databases-and-agentic-ai.md>), [inferencing](<https://devfeed.tech/tags/inferencing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

The article argues that application layers unintentionally protect databases through query abstraction, input validation, rate limiting, and human-oriented traffic patterns. Direct database access by agent frameworks can bypass these protections, allowing unconstrained queries and exposing the database to unfamiliar load and access patterns.

### Source excerpt

The application layer was never designed as a database security boundary - but it acted as one. Agentic AI removes that protection, via bypass or overwhelm, and the database is left exposed.

## SSH Port 22: Custom Ports, Port Forwarding Security, and Production SSH Hardening

DevFeed: [SSH Port 22: Custom Ports, Port Forwarding Security, and Production SSH Hardening](<https://devfeed.tech/articles/ssh-port-22-custom-ports-port-forwarding-security-and-production-ssh-hardening-29873.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/ssh-port-22/>)

Author: info@goteleport.com (Matt Keib)

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

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [port](<https://devfeed.tech/tags/port.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [tcp-handshake](<https://devfeed.tech/tags/tcp-handshake.md>)

### AI overview

This article explains that SSH port 22 is a historical TCP entry point with no inherent cryptographic or authentication significance. It covers port forwarding risks, cryptographic and authentication configuration, rate limiting, and production SSH hardening.

### Source excerpt

Learn about SSH port 22, its limitations, port forwarding security, and how to harden production SSH.

## Agentic AI removes human safeguards from enterprise data feedback loops

DevFeed: [Agentic AI removes human safeguards from enterprise data feedback loops](<https://devfeed.tech/articles/the-brake-was-human-now-it-s-gone-34123.md>)

Original publisher: [Read original article](<https://flashdba.com/2026/04/20/the-brake-was-human-now-its-gone/>)

Author: flashdba

Published: 2026-04-20T22:04:35Z

Content type: opinion

Language: en

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

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [data-architecture](<https://devfeed.tech/topics/data-architecture.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [audit trail](<https://devfeed.tech/topics/audit-trail.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [audit-trail](<https://devfeed.tech/tags/audit-trail.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data-architecture](<https://devfeed.tech/tags/data-architecture.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [databases](<https://devfeed.tech/tags/databases.md>), [databases-and-agentic-ai](<https://devfeed.tech/tags/databases-and-agentic-ai.md>), [inferencing](<https://devfeed.tech/tags/inferencing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

This opinion article argues that enterprise data architectures traditionally relied on human involvement as an implicit safeguard. Delays, approvals and handoffs helped absorb errors, create audit points and limit the speed of changes. Agentic AI can close the feedback loop at machine speed, potentially removing those protections along with the human decision point.

### Source excerpt

Classic enterprise data architecture had an implicit safeguard built into it. The human in the loop provided error absorption, audit accretion and natural rate-limiting - none of which were ever specified. Agentic AI removes the human. It removes all of those protections simultaneously.

## Securely connect Claude Code to Postgres via MCP

DevFeed: [Securely connect Claude Code to Postgres via MCP](<https://devfeed.tech/articles/securely-connect-claude-code-to-postgres-via-mcp-31194.md>)

Original publisher: [Read original article](<https://tailscale.com/learn/postgres-mcp>)

Published: 2026-04-13T13:24:20Z

Content type: tutorial

Language: en

Sources: [Learn on Tailscale](<https://devfeed.tech/sources/learn-on-tailscale.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [Database](<https://devfeed.tech/topics/database.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [audit](<https://devfeed.tech/topics/audit.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [audit](<https://devfeed.tech/tags/audit.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [codex](<https://devfeed.tech/tags/codex.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [health-checks](<https://devfeed.tech/tags/health-checks.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

A practical guide to connecting Claude Code, Cursor, and Codex to Postgres through MCP. It covers quick local setup, comparing Postgres MCP servers, and securing team or production deployments with least-privilege credentials, environment variables, access controls, audit trails, and related governance features.

### Source excerpt

Set up Postgres MCP for Claude Code, Cursor, Codex fast, and see how to handle credentials, access control, and audit trails.

## What is the BFF Pattern?

DevFeed: [What is the BFF Pattern?](<https://devfeed.tech/articles/what-is-the-bff-pattern-34694.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/what-is-the-bff-pattern>)

Author: Saurabh Dashora

Published: 2026-04-07T08:41:56Z

Content type: tutorial

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [BFF](<https://devfeed.tech/topics/bff.md>), [Amazon API Gateway](<https://devfeed.tech/topics/amazon-api-gateway.md>), [backends](<https://devfeed.tech/topics/backends.md>), [client](<https://devfeed.tech/topics/client.md>), [interface](<https://devfeed.tech/topics/interface.md>), [resiliency](<https://devfeed.tech/topics/resiliency.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>)

Tags: [api-gateway](<https://devfeed.tech/tags/api-gateway.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [backends](<https://devfeed.tech/tags/backends.md>), [bff](<https://devfeed.tech/tags/bff.md>), [cache-control](<https://devfeed.tech/tags/cache-control.md>), [client](<https://devfeed.tech/tags/client.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>)

### AI overview

The article explains the Backends-for-Frontends (BFF) pattern, in which dedicated API gateways serve different client types such as web browsers, mobile apps, and public or partner APIs. It describes how BFFs tailor APIs, isolate client-specific logic, and support functions including rate limiting, authentication, header sanitization, and cache control. It also discusses benefits such as resiliency, client-specific optimization, and faster development, along with drawbacks including code duplication and increasing complexity.

### Source excerpt

And when do you need it?

## How to Charge for API Access: A Developer's Guide

DevFeed: [How to Charge for API Access: A Developer's Guide](<https://devfeed.tech/articles/how-to-charge-for-api-access-a-developer-s-guide-9719.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/charge-for-api-access/>)

Author: Ayush Agarwal

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

Content type: tutorial

Language: en

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

Topics: [API](<https://devfeed.tech/topics/api.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [billing](<https://devfeed.tech/tags/billing.md>), [developer](<https://devfeed.tech/tags/developer.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration](<https://devfeed.tech/tags/integration.md>), [payments](<https://devfeed.tech/tags/payments.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [saas](<https://devfeed.tech/tags/saas.md>), [tax](<https://devfeed.tech/tags/tax.md>), [usage-based-billing](<https://devfeed.tech/tags/usage-based-billing.md>)

### AI overview

A developer guide explains three ways to monetize API access: pay-per-call billing, subscription tiers with rate limits, and prepaid credits. It also covers customer metering, checkout, idempotency keys, entitlement management, tax compliance, and failed-payment handling.

### Source excerpt

Step-by-step guide to monetizing your API with pay-per-call, subscription tiers, or credit-based billing. Includes metering, checkout integration, and usage tracking.

## How AI firewalls protect production applications from prompt injection, data leakage, and excessive usage

DevFeed: [How AI firewalls protect production applications from prompt injection, data leakage, and excessive usage](<https://devfeed.tech/articles/ai-firewall-29071.md>)

Original publisher: [Read original article](<https://blog.alexewerlof.com/p/ai-firewall>)

Author: Alex Ewerlöf

Published: 2026-03-15T23:51:29Z

Content type: tutorial

Language: en

Sources: [Alex Ewerlof Notes](<https://devfeed.tech/sources/alex-ewerlof-notes.md>)

Topics: [Firewall](<https://devfeed.tech/topics/firewall.md>), [Security](<https://devfeed.tech/topics/security.md>), [prompt injection](<https://devfeed.tech/topics/prompt-injection.md>), [LLMs](<https://devfeed.tech/topics/llms.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [pii](<https://devfeed.tech/topics/pii.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [firewall](<https://devfeed.tech/tags/firewall.md>), [llms](<https://devfeed.tech/tags/llms.md>), [pii](<https://devfeed.tech/tags/pii.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This tutorial explains AI firewalls, or AI gateways, as reverse proxies with AI-focused inspection between an application backend and an inference provider. It covers ingress attacks such as prompt injection, egress risks including PII and secrets, rate limiting to control costs, latency considerations, implementation trade-offs, and layered defenses.

### Source excerpt

How to protect your AI application in production against new classes of attacks

## AI Slop: A Slack API Rate Limiting Disaster

DevFeed: [AI Slop: A Slack API Rate Limiting Disaster](<https://devfeed.tech/articles/ai-slop-a-slack-api-rate-limiting-disaster-20527.md>)

Original publisher: [Read original article](<https://code.dblock.org/2026/03/12/ai-slop-a-slack-api-rate-limiting-disaster.html>)

Author: Daniel Doubrovkine (dblock@dblock.org)

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

Content type: article

Language: en

Sources: [Daniel Doubrovkine](<https://devfeed.tech/sources/daniel-doubrovkine.md>)

Topics: [Slack](<https://devfeed.tech/topics/slack.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [async](<https://devfeed.tech/tags/async.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [retry](<https://devfeed.tech/tags/retry.md>), [script](<https://devfeed.tech/tags/script.md>), [slack](<https://devfeed.tech/tags/slack.md>)

### AI overview

The article examines an AI-generated cleanup job for closing old Slack group DM conversations. Because Slack's conversations.close endpoint has a global rate limit of one request per second, the implementation could exhaust the limit and disrupt other API calls. The author describes mitigating the issue with scheduled execution, an opt-in setting, a slow-drain script, and limiting the number of DMs closed concurrently.

### Source excerpt

Yesterday I described AI-generated code as "plausible-looking, locally coherent, globally wrong." Here's a concrete example from my own codebase. I needed a cleanup job to close old Slack group DM conversations in my slack-sup2 app. The AI-generated solution looked perfectly reasonable: def close_old_sups! return 0 unless sup_close old_sups = sups.where(conditions) old_sups.each(&:close!) old_sups.count end def close! return unless conversation_id return if closed_at logger.info "Closing DM channel #{conversation_id}..." slack_client.conversations_close(channel: conversation_id) update_attributes!(closed_at: Time.now.utc) end This code looks pretty great and completely breaks the app. Slack's API has a global rate limit of 1 request per second for the conversations.close endpoint. So, when this job runs against a workspace with hundreds of old conversations, it immediately hits the rate limit. Worse, because rate limits are global across all endpoints, it takes down the entire application. Every other API call -- posting messages, fetching user info, everything -- starts failing. I asked AI to address this. It made the fix catastrophically worse. def close! # ... existing code ... begin slack_client.conversations_close(channel: conversation_id) rescue Slack::Web::Api::Errors::TooManyRequests => e sleep_time = e.retry_after || 60 sleep(sleep_time) retry end # ... rest of method ... end In socketry/async, sleep() blocks the entire fiber and prevents other concurrent operations from executing. You should use Async::Task.sleep() instead, but that still doesn't solve the fundamental architectural problem of making hundreds of sequential API calls. What made this particularly insidious is that the assistant wrote some pretty professional-looking code and seemingly handled obvious edge cases. Yet, it failed to consider the distributed system constraints or global invariants. The rate limiting problem wasn't visible in the local scope of the method - it was a system-wide conc

## Announcing the AI Gateway Working Group

DevFeed: [Announcing the AI Gateway Working Group](<https://devfeed.tech/articles/announcing-the-ai-gateway-working-group-17596.md>)

Original publisher: [Read original article](<https://www.kubernetes.dev/blog/2026/03/09/announcing-ai-gateway-wg/>)

Author: The Kubernetes Authors

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

Content type: release

Language: en

Sources: [Kubernetes Contributors Blog](<https://devfeed.tech/sources/kubernetes-contributors-blog.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [networking](<https://devfeed.tech/topics/networking.md>), [AI Infrastructure](<https://devfeed.tech/topics/ai-infrastructure.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [ai-gateway](<https://devfeed.tech/tags/ai-gateway.md>), [ai-infrastructure](<https://devfeed.tech/tags/ai-infrastructure.md>), [anomaly-detection](<https://devfeed.tech/tags/anomaly-detection.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [caching](<https://devfeed.tech/tags/caching.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [networking](<https://devfeed.tech/tags/networking.md>), [payload](<https://devfeed.tech/tags/payload.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [rag](<https://devfeed.tech/tags/rag.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

The Kubernetes community has formed the AI Gateway Working Group to develop standards, declarative APIs, and best practices for networking infrastructure that supports AI workloads. The group's proposals address policy enforcement, payload processing, routing, caching, guardrails, and RAG integration.

### Source excerpt

The community around Kubernetes includes a number of Special Interest Groups (SIGs) and Working Groups (WGs) facilitating discussions on important topics between interested contributors. Today, we're excited to announce the formation of the AI Gateway Working Group , a new initiative focused on developing standards and best practices for networking infrastructure that supports AI workloads in Kubernetes environments. What is an AI Gateway? In a Kubernetes context, an AI Gateway refers to network gateway infrastructure (including proxy servers, load-balancers, etc.) that generally implements the Gateway API specification with enhanced capabilities for AI workloads. Rather than defining a distinct product category, AI Gateways describe infrastructure designed to enforce policy on AI traffic, including: Token-based rate limiting for AI APIs. Fine-grained access controls for inference APIs. Payload inspection enabling intelligent routing, caching, and guardrails. Support for AI-specific protocols and routing patterns. Working group charter and mission The AI Gateway Working Group operates under a clear charter with the mission to develop proposals for Kubernetes Special Interest Groups (SIGs) and their sub-projects. Its primary goals include: Standards Development: Create declarative APIs, standards, and guidance for AI workload networking in Kubernetes. Community Collaboration: Foster discussions and build consensus around best practices for AI infrastructure. Extensible Architecture: Ensure composability, pluggability, and ordered processing for AI-specific gateway extensions. Standards-Based Approach: Build on established networking foundations, layering AI-specific capabilities on top of proven standards. Active proposals WG AI Gateway currently has several active proposals that address key challenges in AI workload networking: Payload Processing The payload processing proposal addresses the critical need for AI workloads to inspect and transform full HTTP request a

## Firewalld, UFW y nftables en Linux

DevFeed: [Firewalld, UFW y nftables en Linux](<https://devfeed.tech/articles/firewalld-ufw-y-nftables-en-linux-34057.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/firewalld-nftables-seguridad-red-linux/>)

Author: Antonio Pérez

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

Content type: tutorial

Language: es

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

Topics: [Firewall](<https://devfeed.tech/topics/firewall.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [centos](<https://devfeed.tech/topics/centos.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Fail2ban](<https://devfeed.tech/topics/fail2ban.md>)

Tags: [centos](<https://devfeed.tech/tags/centos.md>), [debian](<https://devfeed.tech/tags/debian.md>), [fail2ban](<https://devfeed.tech/tags/fail2ban.md>), [firewall](<https://devfeed.tech/tags/firewall.md>), [linux](<https://devfeed.tech/tags/linux.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

A practical Spanish-language guide to managing Linux firewall rules with firewalld, UFW, and nftables. It explains runtime versus permanent rules, rich rules and NAT, rate limiting, SSH protection, and persistence after reboot, with warnings about avoiding lockout during remote administration.

### Source excerpt

Firewalld, UFW y nftables: reglas permanentes vs runtime, rate limiting, persistencia tras reinicio y migración desde iptables.

## hybrid quota-linear rate limiter

DevFeed: [hybrid quota-linear rate limiter](<https://devfeed.tech/articles/hybrid-quota-linear-rate-limiter-36226.md>)

Original publisher: [Read original article](<https://dotat.at/@/2026-01-12-hqlr.html>)

Published: 2026-01-13T00:12:01Z

Content type: article

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [quotas](<https://devfeed.tech/tags/quotas.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>)

### AI overview

The article explores a hybrid quota-linear rate limiter intended to enforce request quotas more precisely within a time window while limiting storage costs and avoiding bursty client behavior. It compares linear rate limiting with fixed-window quota resets and notes trade-offs, including throttling response time and burstiness.

### Source excerpt

A while back I wrote about the linear rate limit algorithms leaky bucket and GCRA. Since then I have been vexed by how common it is to implement rate limiting using complicated and wasteful algorithms (for example). But linear (and exponential) rate limiters have a disadvantage: they can be slow to throttle clients whose request rate is above the limit but not super fast. And I just realised that this disadvantage can be unacceptable in some situations, when it's imperative that no more than some quota of requests is accepted within a window of time. In this article I'll explore a way to enforce rate limit quotas more precisely, without undue storage costs, and without encouraging clients to oscillate between bursts and pauses. However I'm not sure it's a good idea. linear reaction time fixed window quota resets hybrid quota-linear algorithm discussion opinion linear reaction time How many requests does a linear rate limiter allow before throttling? The parameters for a rate limiter are: q, the permitted quota of requests w, the accounting time window So the maximum permitted rate is q/w. Let's consider a client whose rate is some multiple a > 1 of the permitted rate (a for abuse factor) c = a * q/w I'll model the rate limiter as a token bucket which starts off with q tokens at time 0. The bucket accumulates tokens at the permitted rate and the client consumes them at its request rate. (It is capped at q tokens but we can ignore that detail when a > 1.) b(t) = q + t*q/w - t*a*q/w The time taken for n requests is t(n) = n/c = (n*w) / (a*q) After n requests the bucket contains b(n) = q + n/a - n The rate limter throttles the client when the bucket is empty. b(t) = 0 = q + t * (1 - a) * q/w 0 = 1 - t * (a - 1) / w t = w / (a - 1) b(n) = 0 = q + n * (1/a - 1) 0 = q - n * (a - 1) / a n = q * a / (a - 1) For example, if the client is running at twice the permitted rate, a=2, they will be allowed q*2 requests within w seconds before they are throttled. That's a bit slow. T

## Proxy inverso con Nginx: guía práctica

DevFeed: [Proxy inverso con Nginx: guía práctica](<https://devfeed.tech/articles/proxy-inverso-con-nginx-guia-practica-34078.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/proxy-inverso-nginx-guia-practica/>)

Author: Antonio Pérez

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

Content type: tutorial

Language: es

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

Topics: [nginx](<https://devfeed.tech/topics/nginx.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [let's encrypt](<https://devfeed.tech/topics/let-s-encrypt.md>), [rhel](<https://devfeed.tech/topics/rhel.md>), [SELinux](<https://devfeed.tech/topics/selinux.md>)

Tags: [let-s-encrypt](<https://devfeed.tech/tags/let-s-encrypt.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [rhel](<https://devfeed.tech/tags/rhel.md>), [selinux](<https://devfeed.tech/tags/selinux.md>), [ssl](<https://devfeed.tech/tags/ssl.md>)

### AI overview

A practical Spanish-language guide to using Nginx as a reverse proxy. It covers routing traffic to internal applications, HTTPS with Let's Encrypt, load balancing, upload and proxy timeout settings, request-rate limiting, gzip compression, security headers, and the 502 issue associated with SELinux on RHEL.

### Source excerpt

Nginx como proxy inverso: subidas de archivos grandes, timeouts, rate limiting, gzip y el clásico 502 por SELinux en RHEL.

## Building a Transparent Keyserver

DevFeed: [Building a Transparent Keyserver](<https://devfeed.tech/articles/building-a-transparent-keyserver-20697.md>)

Original publisher: [Read original article](<https://words.filippo.io/keyserver-tlog/>)

Author: Filippo Valsorda

Published: 2025-12-19T14:03:18Z

Content type: tutorial

Language: en

Sources: [Filippo Valsorda](<https://devfeed.tech/sources/filippo-valsorda.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [rate-limiting](<https://devfeed.tech/topics/rate-limiting.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Server](<https://devfeed.tech/topics/server.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [building](<https://devfeed.tech/tags/building.md>), [cli](<https://devfeed.tech/tags/cli.md>), [go](<https://devfeed.tech/tags/go.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [server](<https://devfeed.tech/tags/server.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [transparency-log](<https://devfeed.tech/tags/transparency-log.md>)

### AI overview

This tutorial builds a centralized keyserver for looking up age public keys. It applies transparency-log technology to help keep the operator accountable and prevent surreptitious injection of malicious keys while protecting user privacy. The implementation uses a Go server, SQLite database, APIs, email authentication, a CAPTCHA, and a Go CLI.

### Source excerpt

We apply a transparency log to a centralized keyserver step-by-step, in less than 500 lines, with privacy protections, anti-poisoning, and witness cosigning.

## Securing a retail AI endpoint from abuse for virtual try on

DevFeed: [Securing a retail AI endpoint from abuse for virtual try on](<https://devfeed.tech/articles/securing-a-retail-ai-endpoint-from-abuse-for-virtual-try-on-16643.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2025/11/securing-ai-endpoints-from-abuse>)

Author: Alexander Nohe

Published: 2025-11-11T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Code](<https://devfeed.tech/topics/code.md>), [cURL](<https://devfeed.tech/topics/curl.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [app-check](<https://devfeed.tech/tags/app-check.md>), [attestation](<https://devfeed.tech/tags/attestation.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [backend](<https://devfeed.tech/tags/backend.md>), [code](<https://devfeed.tech/tags/code.md>), [curl](<https://devfeed.tech/tags/curl.md>), [devices](<https://devfeed.tech/tags/devices.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [generation](<https://devfeed.tech/tags/generation.md>), [genkit](<https://devfeed.tech/tags/genkit.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [image](<https://devfeed.tech/tags/image.md>), [model](<https://devfeed.tech/tags/model.md>), [rate-limiting](<https://devfeed.tech/tags/rate-limiting.md>), [retail](<https://devfeed.tech/tags/retail.md>), [server](<https://devfeed.tech/tags/server.md>), [token](<https://devfeed.tech/tags/token.md>)

### AI overview

A tutorial on protecting a Firebase AI endpoint for a virtual try-on application. It explains using App Check, replay-protected tokens, authentication, and rate limiting to reduce unauthorized access, replayed requests, and excessive generation costs.

### Source excerpt

Learn how to protect expensive AI features from abuse using Firebase App Check, Authentication, and rate limiting to ensure only legitimate users can access them.

[Next page](<https://devfeed.tech/tags/rate-limiting.md?cursor=WyIyMDI1LTExLTExVDAwOjAwOjAwKzAwOjAwIiwgImY4Yjk3ODRkLTNlMTgtNDAzOC1hNmE2LTNhNmM3NGYwYjY4YyJd>)