Erlang and PostgreSQL with epgsql driver

It seems that we’ve passed all common steps while choosing driver for PostgreSQL: from psql to pgsql and finished on epgsql. (Here you can find descriptions for all of them). Additional project for epgsql is epgsl_pool project which solves lack of support for connection pooling. Thanks to Will Glozer for developing such good things.

But one thing was not be solved in epgsql_pool: getting connection for new requests was not checked correctly and from time to time two processes make attempt to use the same connection. So, one can get an error report looks like this:

** Reason for termination =
** {‘function not exported’,

This issue was fixed by zotonic team (fix is available here).

So, now we are running load tests on application which uses epgsql with epgsql_pool with zotonic fix. It seems that this combination is good enough.