GatewayD & Plugins ๐
Since the previous newsletter was published a few version of GatewayD has been released, namely v0.8.4 to v0.8.8. These are the changes and improvements in the last few releases:
GatewayD v0.8.8: Expanding Platform Compatibility and Build Process Enhancements
Released on November 18, v0.8.8 focused on expanding platform compatibility and enhancing the build process. Thanks to Hamed Salimzade. ๐
Build Process Upgrades: The release introduces enhancements to the GitHub Actions used in the build and publish process. These improvements aim to streamline and optimize the development workflow.
Support for
linux/arm64
: A notable addition in this version is the support forlinux/arm64
builds. This expansion means that the Docker image for GatewayD can now be used on Apple's M1 and M2 chipsets, as well as other 64-bit ARM chipsets. This development marks a step forward in ensuring GatewayD's compatibility with a wider range of hardware platforms.
GatewayD v0.8.7: Maintenance and Stability Enhancements
Released on December 4, v0.8.7 focused on maintenance improvements:
Dependency Updates: Ensuring compatibility and security with the latest library versions.
Error Handling: Panics are transformed into fatal errors, reducing false alarms in error reporting systems like Sentry.
Logging Improvements: Enhanced log messages for better clarity and debugging.
GatewayD v0.8.6: Robustness and Efficiency
Released on November 19, v0.8.6 introduced key features and fixes:
Test Suite Revamp: Resolving previous failures and running tests sequentially for reliability.
Refactoring: Improving the maintainability and efficiency of the codebase.
API Updates: Minor changes in preparation for a significant overhaul.
Circuit Breaking: A major feature ensuring system resilience under high load or failure conditions, with features like dialTimeout, retries and backoffs, and configurable start timeout for plugins.
GatewayD v0.8.5: Enhancing Security with TLS
Released on November 5, v0.8.5 added critical security features:
TLS Termination for Postgres Clients: GatewayD now acts as a TLS server, encrypting traffic between clients and GatewayD while maintaining plaintext communication with Postgres.
Support for Various SSL Modes: Including
disable
,allow
,prefer
,require
,verify-ca
, andverify-full
, each with specific behaviors and responses.
GatewayD v0.8.4: Features, Fixes, and a Breaking Change
Released on October 24, v0.8.4 brought several updates:
Subcommand Behavior: They now print error messages instead of causing a panic.
Health Check Endpoints: Added to gRPC API and HTTP gateway, useful for containerized environments and Kubernetes, which can be tested using the following methods. These are particularly useful for liveness and readiness.
$ curl http://localhost:18080/healthz {"status":"SERVING"} $ grpc-client-cli health localhost:19090 { "status": "SERVING" }
Plugin Install Command Overhaul: Introduced interactive prompts and backup options for plugin installation, with a significant breaking change for more controlled installation processes.
Plugins and SDK โ๏ธ
The SDK now includes a CGO-free version of pg_query_go, which subsequently enabled builds of the cache plugin on Windows (v0.2.7).
Removal of CGO Dependency: A major shift in the v0.2.7 release is the elimination of the reliance on CGO. This change is made possible through the integration of go-pgquery that leverages WebAssembly and Wazero.
Expanded Build Compatibility: With the removal of CGO,
gatewayd-plugin-cache
can now be built for any target operating system and architecture supported by Go. The updates in v0.2.7 vastly improves the flexibility and usability of the plugin across different platforms.Dependency Updates and Windows Support: The v0.2.7 release also includes updates to various dependencies to ensure optimal performance and security. Additionally, binaries for Windows have been introduced, expanding the plugin's accessibility to Windows users.
Asynchronous Cache Updating: The v0.2.8 release overcomes the previous delay in client-server interaction caused by the synchronous caching of database responses. Especially for larger, unfiltered queries, this update significantly reduces communication lag by caching the response concurrently with data transmission to clients. Thanks to Shahryar Soltanpour. ๐
GatewayD โค๏ธ {{ Kubernetes & Helm }}
If you are interested in deploying and exploring GatewayD in a k8s environment, have a look at the Helm charts contributed by Mohammad Amin Taheri, which can get you started. Hamed Salimzade is revamping it with more features and updates.
Beginnerโs Guide to GatewayD ๐
A new series of articles are published on the GatewayD blog about how to get started using GatewayD. So far four articles have been published, which you can find below:
In the News ๐ฐ
GatewayD has been featured on the console.dev newsletter: ๐
It attracted a lot of attention from the community and led to a lot of new stars on the GitHub repositories. โจ
Do You Want to Collaborate? ๐งโ๐ป
A LinkedIn post has been published to ask for help from the community for contributing to the GatewayD and its related projects. So far it sparked the interest of twelve people including developers, DevOps and AI/ML specialists. Almost all of them already started working on different parts of the projects and a few PRs are already opened and there are more on the way. ๐
GatewayD and its related projects are free and open-source. We are looking for collaborators and there are many interesting CS/engineering problems to solve, ranging from creating lexers/parsers for various SQL dialects to AI/ML, testing, blogging and beyond. Let's talk if you're interested.