Skip to content

v0.10.1

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Dec 13:03
b6df86a

This release introduces Raft-based state management for GatewayD to ensure efficient and consistent coordination between multiple instances. By leveraging HashiCorp’s Raft implementation, GatewayD now maintains a unified state for parameters like connection pools and load-balancer strategies across all instances in a cluster, ensuring high availability, consistency, scalability, and efficiency.

Key Features and Objectives:

  1. High Availability: Ensures the system remains operational even if individual instances fail. Raft provides fault tolerance by replicating state across multiple nodes, enabling consistent state retrieval and updates during failover scenarios.

  2. Consistency: Guarantees that all instances in the cluster share the same view of stateful parameters, such as connection pools and load-balancer strategies, maintaining synchronized operations across distributed instances.

  3. Scalability: Simplifies state coordination in clusters, enabling seamless scaling of GatewayD instances without introducing inconsistencies or requiring manual intervention.

  4. Efficiency: Propagates updates to stateful parameters in real-time, ensuring optimal load balancing and resource utilization across instances.

Implementation Details:

  • Unified State Management: A single Raft cluster handles stateful parameters as key-value pairs, ensuring consistency across nodes without the need for complex databases.
  • Real-time Updates: Changes in one instance are immediately propagated to others, maintaining consistency and optimal load balancing.
  • Fault Tolerance and Recovery: Raft’s persistence via BoltDB ensures reliability, while in-memory runtime state management simplifies operations.

This update resolves inconsistencies in the previous per-instance state management approach, ensuring scalable and robust operation for GatewayD clusters. A huge thanks to @sinadarbouy for his excellent work on this implementation! 🎉


This release also includes several critical updates and fixes to enhance security, improve performance, and maintain compatibility:

Security Updates:

  1. OpenSSL Update: Upgraded to 3.3.2-r1 to address CVE-2024-9143.
  2. Crypto Library Fix: Resolved CVE-2024-45337 by updating golang.org/x/crypto to the latest version.

Dependency Updates:

  1. GitHub Actions: Updated softprops/action-gh-release to v2 for enhanced functionality and compatibility.
  2. Direct Dependencies: Updated direct dependencies to their latest stable versions.

Development Improvements:

  1. SDK Update: Updated the SDK to the latest version.
  2. Go Updates: Upgrade Go to the latest version.
  3. Protobuf Changes: Regenerated Protobuf message stubs with HTTP annotations for improved API compatibility.

Linter Fixes:

  • Addressed all issues reported by linters to ensure cleaner and more maintainable code.

What's Changed

Full Changelog: v0.10.0...v0.10.1