# sds | DiDi | Knowledge Base | Instagit

SDS是一个基于Java开发的简单、易用、高性能的服务降级系统，支持限流、熔断和降级等功能，服务端必备！！

GitHub Stars: 445

Repository: https://github.com/didi/sds

---

## Articles

### [SDS Client Reconnection and Data Synchronization: Inside Didi's Service Degrade System](/didi/sds/sds-client-reconnection-data-synchronization-mechanism)

Discover how SDS clients ensure reliable connections and real-time data sync via failover, heartbeats, and strategy pulls. Learn about Didi's Service Degrade System internals.

- Tags: internals
- Published: 2026-02-28

### [Understanding the Initial Access Count for SDS Exception Rate Limiting](/didi/sds/sds-exception-rate-limiting-initial-access-count-purpose)

Learn how SDS exception rate limiting uses initial access count to avoid premature degradations and ensure statistically valid decisions before downgrading services.

- Tags: deep-dive
- Published: 2026-02-28

### [Hot-Swapping Mechanism for Dynamically Adjusting SDS Downgrade Strategies: A Deep Dive into Didi SDS](/didi/sds/sds-dynamic-downgrade-strategy-adjustment-hot-swapping)

Learn about Didi SDS hot-swapping mechanism for zero-downtime strategy updates. Dynamically adjust SDS downgrade strategies by atomically replacing in-memory configurations without JVM restarts.

- Tags: deep-dive
- Published: 2026-02-28

### [SDS vs Sentinel: How to Choose the Right Flow-Control and Downgrade Solution](/didi/sds/sds-vs-sentinel-differences-selection-advice)

Understand SDS vs Sentinel flow control and downgrade solutions. SDS offers basic per-instance rules while Sentinel provides cluster-wide, system-level protection. Choose the right fit for your needs.

- Tags: comparison
- Published: 2026-02-28

### [SDS vs Hystrix: Functional Comparison and Architectural Advantages](/didi/sds/sds-functional-comparison-with-hystrix-advantages)

Compare SDS vs Hystrix for high-throughput Java microservices. Discover SDSs advantages including advanced traffic limiting and real-time adjustments for better performance.

- Tags: deep-dive
- Published: 2026-02-28

### [SDS Request Volume Limiting vs Concurrency Limiting: Differences and Selection Criteria](/didi/sds/sds-request-volume-limiting-vs-concurrency-limiting-comparison-selection)

Understand SDS request volume limiting vs concurrency limiting. Learn how to choose the right method to control your system's request flow effectively.

- Tags: deep-dive
- Published: 2026-02-28

### [Why SDS's `downgradeFinally` Must Be Called in a Finally Block](/didi/sds/sds-downgradefinally-must-be-called-in-finally-block)

Ensure SDS downgradeFinally executes in a finally block for reliable cleanup of counters metrics and state. Protects against exceptions and normal returns.

- Tags: internals
- Published: 2026-02-28

### [How to Use the `exceptionSign` Method for Exception Statistics in Didi SDS](/didi/sds/sds-client-exception-statistics-exceptionsign-usage)

Learn how to use the exceptionSign method in Didi SDS clients to validate classify and count exceptions for downgrade strategies. Optimize your exception handling now.

- Tags: how-to-guide
- Published: 2026-02-28

### [SDS Downgrade Points Naming Conventions and Management Practices](/didi/sds/sds-downgrade-point-naming-conventions-management)

Discover SDS downgrade points naming conventions. Learn about camel-case Java variables, unique identifiers, and centralized management for efficient application control.

- Tags: best-practices
- Published: 2026-02-28

### [SDS Sliding Window Design: How the 10-Second Window and 1-Second Step Work](/didi/sds/sds-sliding-window-10s-window-1s-step-design)

Explore the SDS sliding window design using a 10-second window and 1-second step. Learn how this ring buffer approach enables real-time downgrade decisions with low memory use.

- Tags: internals
- Published: 2026-02-28

### [Is the shouldDowngrade Method Thread-Safe in Didi SDS? Architecture and Implementation Analysis](/didi/sds/sds-shoulddowngrade-method-thread-safety)

Discover if the shouldDowngrade method in Didi SDS is thread-safe. Learn how ThreadLocal storage and concurrent collections ensure its safety.

- Tags: architecture
- Published: 2026-02-28

### [How to Configure Single Machine Thresholds in a Clustered SDS Environment](/didi/sds/sds-clustered-environment-single-machine-threshold-configuration)

Learn to configure single machine thresholds in a clustered SDS environment. Understand how each node independently applies rate limits, concurrency, and exception thresholds.

- Tags: how-to-guide
- Published: 2026-02-28

### [How SDS Filtering for Dubbo Integration Works: Implementation Principles and Source Code Analysis](/didi/sds/sds-dubbo-integration-filter-implementation-principle)

Understand SDS filtering for Dubbo integration. Discover how it intercepts RPC calls, checks degradation rules, and reports statistics with the didi/sds repository. No extra configuration needed.

- Tags: internals
- Published: 2026-02-28

### [How SDS Clients Receive Downgrade Event Notifications: Implementation Guide](/didi/sds/sds-client-downgrade-event-notification)

Learn how SDS clients receive downgrade event notifications via a publish-subscribe mechanism. This guide details the implementation using DowngradeActionListener and SdsDowngradeActionNotify for asynchronous event dispatch.

- Tags: how-to-guide
- Published: 2026-02-28

### [SDS Heartbeat Mechanism and Strategy Distribution: A Complete Interaction Flow Guide](/didi/sds/sds-heartbeat-mechanism-strategy-distribution-interaction)

Understand the SDS heartbeat mechanism and strategy distribution interaction flow. Learn how clients sync runtime metrics and get updated strategies ensuring real-time propagation with low latency.

- Tags: deep-dive
- Published: 2026-02-28

### [How to Integrate SDS via Spring AOP: Architecture, Principles, and Limitations](/didi/sds/sds-spring-aop-integration-principle-limitations)

Learn how to integrate SDS via Spring AOP by intercepting @SdsDowngradeMethod annotations. Discover its principles, limitations including Spring-managed beans only, and self-invoked method restrictions.

- Tags: internals
- Published: 2026-02-28

### [How to Integrate SDS via Java Agent: Bytecode Instrumentation Guide](/didi/sds/sds-java-agent-integration-principle-configuration)

Learn to integrate SDS via Java Agent with this guide. Instrument bytecode at JVM startup to protect methods using @SdsDowngradeMethod without altering business logic. Protect your applications easily.

- Tags: how-to-guide
- Published: 2026-02-28

### [How SDS Implements the 0-100 Downgrade Ratio for Canary Releases](/didi/sds/sds-downgrade-ratio-0-100-implementation-canary-release)

Discover how SDS implements the 0-100 downgrade ratio for zero-downtime canary releases. Learn to precisely control traffic redirection to fallback implementations.

- Tags: deep-dive
- Published: 2026-02-28

### [SDS Timeout Limiting: Statistical Logic and Threshold Configuration in Didi SDS](/didi/sds/sds-timeout-limiting-statistical-logic-threshold-configuration)

Understand Didi SDS timeout limiting with its statistical logic. Learn how timeoutThreshold and timeoutCountThreshold in a 10-second window trigger degradation.

- Tags: deep-dive
- Published: 2026-02-28

### [SDS Exception Limiting vs Exception Rate Limiting in Didi SDS: A Complete Configuration Guide](/didi/sds/sds-exception-limiting-vs-exception-rate-limiting-differences-configuration)

Understand SDS exception limiting vs exception rate limiting in Didi SDS. Learn configuration differences and optimal strategies for service degradation. Guide for didi/sds.

- Tags: deep-dive
- Published: 2026-02-28

### [How the Token Bucket Algorithm Is Implemented and Configured in SDS](/didi/sds/sds-token-bucket-algorithm-implementation-configuration)

Learn how the token bucket algorithm is implemented in SDS. Explore its sliding-window counter, request evaluation, and tunable parameters within the SdsStrategy configuration.

- Tags: how-to-guide
- Published: 2026-02-28

### [How SDS Implements Sliding‑Window Rate Limiting Using AtomicLongArray](/didi/sds/sds-sliding-window-rate-limiting-atomiclongarray-implementation)

Discover how SDS implements thread-safe sliding window rate limiting using AtomicLongArray for lock-free atomic increments and seamless time-based bucket rotation in this technical deep dive.

- Tags: internals
- Published: 2026-02-28

