ShardingSphere is a distributed SQL database middleware that provides sharding, read-write splitting, and distributed transaction management for relational databases. It functions as a layer that intercepts SQL queries to distribute data across multiple physical database instances for horizontal scaling.
The project is distinguished by its ability to operate as either a standalone transparent database proxy or via direct integration as a JDBC driver. It features a SQL dialect translator that parses queries into abstract syntax trees to convert syntax between different database engines, enabling a unified interface across heterogeneous storage backends. Additionally, it includes a security gateway for transparent data encryption, dynamic data masking, and SQL firewall access control.
The system covers a broad range of data distribution and governance capabilities, including horizontal and vertical sharding, read-write splitting, and real-time data migration using change data capture pipelines. It also provides tools for database stress testing through shadow database routing and observability features for SQL execution tracing and performance monitoring.
The project is implemented in Java and supports deployment as a standalone cluster or as an embedded library.