pgagroal 2.0.0 is available!
It took quite a lot of time to get from version1.6.0 to the new major version 2.0.0, but the new pgagroal is finally here!
The project went thru two Google Summer of Code (GSoC 2025 and 2024) before this new great release was completed, but the project decided to prefer the code stability over the rush in releasing, and I think you are going to be amazed by how much improvements have been collapsed in this new version.
The official release note has been sent today.
The new features
There are a lot of new features and small gems in this2.0.0 release, it is pretty much impossible to describe all of them here, but here it is a concise list of what you can expect from this new version.
The new event system
pgagroal has been event-driven from the very beginning, using the libev library for handling input/output in a more fast and scalable way.
The project decided to move from libev from something more modern and better mantained, and the natural choice for Linux operating systems was io_uring (yes, the same used in PostgreSQL 18) and kqueue for BSD systems. io_uring is an async method for read and write operations that aims at peformances, while kqueue is an event driven approach for FreeBSD and OpenBSD systems.
The key point here is event-driven and, obviously, asynchronous. The whole event management has been rewritten to wrap compatible structures and functions wherever possible. Performances have increased a lot from the 1.x releases.
The new management protocol
The management protocol is the waypgagroal-cli and pgagroal interact each other: it sends commands to the daemon and get back responses.
The new release provides a new fully rewritten management protocol that now speaks entirely JSON. Moreover, the protocol is now more robust and error tolerant. Moreover, every command and response now include the application and daemon version, so that it is possible to get detail about the endpoints.
The immediate effect of this change is that you are going to see a very different text output from each command.
Improved metrics
pgagroal provides Prometheus-ish metrics, and this release includes new metrics that can help monitoring better your pooler instance.
Moreover, it is now possible to manage TLS for Prometheus.
Improved Grafana Dashboards
There is a new set of dashboards that are Grafana 12 compatible and that show a lot more gauges than before. This helps in monitoring thepgagroal instance.
The Vault
There is now a vault that can manage frontend users’ passwords, changing them (rotating) depending on the configuration. The vault exposes metrics too, that can be consumed by Prometheus.UTF-8 passwords
There is now full support for UTF-8 passwords, reducing the gap between the split security ofpgagroal to PostgreSQL.
Improved testing environment
A lot of work has been done on the testing and Continuous Integration (CI) side, so that now every contribution is strongly validated. The project also changed the source code formatting tool passing fromuncrustify to the modern clang-format.
Documentation
There is now a complete manual, that is built from Markdown documents automatically. This substitutes the old tutorials and provide a mucch complete and mature documentation for the usage and configuration ofpgagroal.
Bug Fixing
A lot of bug have been fixed and discovered while working on all the above features. Thanks to the new testing infrastructure and containerization, it has been simpler to discover problems and fix them. We hope to be even better in the future with regard to this context.A new website
This release also brings a new new web site and the migration of the Github repository.How much?
There have been221 commits that lead to this new release. It may sound not too much, given the long list of new features and gems, but please consider that the project does one commit per feature almost:
% git log 1.6.0..2.0.0 --oneline | wc -l
221
One important thing to note
If you ask me what is, according to me, the most important change thatpgagroal has done during its trip to version 2, I quickly answer the growth of the community:
% git checkout 1.6.0 && wc -l AUTHORS && git checkout 2.0.0 && wc -l AUTHORS
10 AUTHORS
29 AUTHORS
As you can see, we increased the number of authors of
200%! Not bad, uh? Clearly, not all the authors are active today, as were not in the past, but the increase in size means that pgagroal caught interest and value.
Quite frankly, Jesper did and is doing a great job in making contributions pushes and pulls from the so called sister projects like pgmoneta and pgexporter and this also helps in getting attention to the project, as well as increases the capability of code reviews and quality.
Conclusions
We are really happy with this new release ofpgagroal; the pooler is getting more and more attention every day and the code quality and stability has improved a lot. We all learned during this process and are contributing well to the codebase, that is become every day more and more enterprise-level.
You will be amazed by the features the pooler now provides, and the peformances are getting better than ever!
Please start by visiting the new pgagroal web site and reading the documentation and fire up your own pooler instance!