package com.lingniu.ingest.api.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 单 VIN 速率限制声明。
 *
 * <p>当前内置限流器在 Pipeline before 阶段按 VIN 中止处理，超限帧不会进入 Handler 和下游存储。
 * 如果需要把超限帧写入 DLQ，应在拦截器或入口层显式增加对应 sink。
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RateLimited {

    /** 单 VIN 每秒最大消息数。 */
    int perVin() default 50;

    /** 全局 QPS 上限；<=0 表示不设限。 */
    int global() default -1;
}
