Add AOP-based @ratelimited Annotation Support
Background
FluxGate currently uses Filter-based rate limiting. This proposal adds AOP support for method-level rate limiting.
Proposed Usage
@RestController
public class ApiController {
@RateLimited(key = "user-api", capacity = 100, refillPerSecond = 10)
@GetMapping("/api/users")
public List<User> getUsers() {
return userService.findAll();
}
@RateLimited(ruleSetId = "premium-api") // Reference to MongoDB rule
@PostMapping("/api/premium/action")
public Result performAction() {
return premiumService.execute();
}
}
Comparison: Filter vs AOP
| Aspect |
Filter |
AOP |
| Granularity |
URL pattern |
Method level |
| Non-HTTP Support |
No |
Yes |
| Dynamic Rules |
Yes |
Partial |
| Use Case |
API Gateway |
Business methods |
Questions for Discussion
- Same module or separate? (
fluxgate-spring-boot-starter vs fluxgate-aop-support)
- Priority? Filter covers most use cases already
- Key resolution? SpEL expressions vs built-in strategies
Looking for community feedback.
Add AOP-based @ratelimited Annotation Support
Background
FluxGate currently uses Filter-based rate limiting. This proposal adds AOP support for method-level rate limiting.
Proposed Usage
Comparison: Filter vs AOP
Questions for Discussion
fluxgate-spring-boot-startervsfluxgate-aop-support)Looking for community feedback.