📚 wescale - Awesome Go Library for Database

Go Gopher mascot for wescale

WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications.

🏷️ Database
📂 Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases.
199 stars
View on GitHub 🔗

Detailed Description of wescale

WeScale

LICENSE Language
Unit Test (mysql57) Unit Test (mysql80) E2E Test MTR Test

WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications.
By managing connections, read-write-split, read-after-write-consistency, load balancing, WeScale offers a valuable tool for developers and database administrators.

Getting Started

  • To Get Started On Your Local Machine with WeScale, simply clone the repository and follow the installation instructions provided in the documentation.
  • To Deploy WeScale on Kubernetes, you can use the powerful Kubeblocks Operator to quickly launch a WeScale cluster in a Kubernetes cluster. We recommend this method for production environments.

Blogs

Documentation

Developer

Features

Connection Management: WeScale efficiently manages connections to your database, reducing the overhead on your application and improving performance. WeScale relieves you of the worry of the max_connection problem in your database.

Read Write Split: WeScale simplify application logic by automatically routing read queries to read-only nodes and write queries to the primary node. This is achieved by parsing and analyzing SQL statements, which ensures efficient use of available resources.

Read After Write Consistency: When an application writes data to the primary node and subsequently reads it on a read-only node, WeScale makes sure that the data that was just written to the primary node can be accessed and read from the read-only node.

Load Balancing: The proxy intelligently routes queries to the appropriate read-only nodes using various load balancing policies. This ensures that the workload is evenly distributed across all available nodes, optimizing performance and resource utilization

Transparent Failover: WeScale is capable of automatically detecting failovers and buffering application SQL in its memory while keeping application connections intact, thus enhancing application resilience in the event of database failures.

Contributing

We welcome contributions to WeScale! If you have any ideas, bug reports, or feature requests, please feel free to open an issue or submit a pull request.

License

WeScale is released under the Apache 2.0 License.

Acknowledgements

WeScale is a fork of the Vitess project, which is a database clustering system for horizontal scaling of MySQL. We would like to thank the Vitess team for their hard work.