Skip to content

blog: add article on APISIX 3.16 dynamic rate limiting#2028

Merged
Baoyuantop merged 6 commits intoapache:masterfrom
moonming:blog/apisix-3.16-dynamic-rate-limiting
Apr 16, 2026
Merged

blog: add article on APISIX 3.16 dynamic rate limiting#2028
Baoyuantop merged 6 commits intoapache:masterfrom
moonming:blog/apisix-3.16-dynamic-rate-limiting

Conversation

@moonming
Copy link
Copy Markdown
Member

Summary

  • Add blog post: "What's New in Apache APISIX 3.16: Dynamic Rate Limiting for Your API Gateway"
  • Covers two new features: multiple rules and variable support in limit-count, limit-conn, and ai-rate-limiting plugins
  • Includes 6 complete, tested configuration examples (all validated against a live APISIX 3.16.0 instance)
  • Covers use cases: multi-window rate limiting, per-tier quotas, multi-tenant isolation, concurrent connection limits, AI token budget management, and combined rules with variables

Test plan

  • All 6 JSON configuration examples validated via APISIX 3.16.0 Admin API (201 Created)
  • Gateway requests verified rate limit headers are correctly returned
  • Article follows existing blog post format and frontmatter conventions

Introduce the new multiple rules and variable support in limit-count,
limit-conn, and ai-rate-limiting plugins. All configuration examples
have been validated against a live APISIX 3.16.0 instance.
Copilot AI review requested due to automatic review settings April 14, 2026 03:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new English blog article announcing and explaining APISIX 3.16’s “dynamic rate limiting” enhancements (multi-rule support + variable-based configuration) with several full configuration examples and links to plugin docs.

Changes:

  • Adds a new blog post: “What’s New in Apache APISIX 3.16: Dynamic Rate Limiting for Your API Gateway”.
  • Documents multi-rule usage for limit-count, limit-conn, and ai-rate-limiting with multiple end-to-end JSON examples.
  • Includes upgrade/getting-started commands and links to relevant plugin documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md Outdated
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Baoyuantop
Baoyuantop previously approved these changes Apr 14, 2026
Copy link
Copy Markdown
Contributor

@Yilialinn Yilialinn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed all 6 configuration examples by running them against a live APISIX 3.16.0 instance. All examples pass Admin API schema validation (201 Created). However, 3 examples fail at runtime and 1 is silently non-functional. Details are inline below.

Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
Comment thread blog/en/blog/2026/04/14/apisix-3.16-dynamic-rate-limiting.md
…ples

- Add key-auth plugin to Example 1 (per-tier), Example 3 (limit-conn),
  and the combined example: ${consumer_name} requires an authenticated
  consumer; without it the rule is silently skipped and APISIX returns 500
- Replace bare 'global' constant key with '${http_host ?? global}' in
  Example 3 (limit-conn), the ai-rate-limiting example, and the combined
  example: plain constant strings produce n_resolved=0 and are skipped
  at runtime due to an APISIX bug (filed at apache/apisix#13180)
- Add prerequisite note to the ai-rate-limiting section: the plugin is
  silently inactive without ai-proxy, which sets picked_ai_instance_name
Yilialinn and others added 3 commits April 15, 2026 17:59
Remove blockquote warning boxes and fold the context into
the surrounding paragraphs so the article reads smoothly:
- Example 1: mention key-auth inline in the setup sentence
- Example 3: explain key-auth and the shared-key variable in
  the lead-in sentence rather than as a standalone note
- AI rate limiting: introduce ai-proxy dependency in the
  section opener as a natural description of how the plugin works
- Combined example: describe key-auth and the global key choice
  as part of the feature walkthrough
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Yilialinn Yilialinn requested a review from Baoyuantop April 16, 2026 03:00
@Baoyuantop Baoyuantop merged commit 2769ec3 into apache:master Apr 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants