AscenDB Release: peaks-1.1.2

This is a non-standard release of the peaks API because I discovered that peaks-1.1.0 is broken. Unfortunately, I missed a corner case while testing 1.1.0, and there was a flaw in my database connection pooling method which would cause a request to succeed once every 10 minutes or so when deployed to a server, but work perfectly fine on every localhost request. The bug was partly due to the subtleties of serverless development, where global state is simultaneously both a hidden treasure and a landmine. It turns out that while hunting for the treasure, I stepped on the landmine, and the result made it's way into 1.1.0. This new release patches everything back together, and may even make consecutive requests to the same function faster.

Here's the short change log for this hotfix:

  • No changes were made to the API interface. Code that works for 1.1.0 will continue to work unchanged for 1.1.2.
  • Fixed a bug that would cause database connections to fail after the first call to each function 'container'. In the serverless world, containers are usually temporary on a scale of minutes, so a function would intermittently appear to succeed but would also frequently fail consecutive calls.
  • Implemented proper database connection pooling, so bursts of calls to the same function have the potential to perform faster and use less resources.
  • Built a robust automated test suite to prevent the introduction of these types of bugs in the future.

Release 1.1.2 is what release 1.1.0 should have been, and I wish I'd have caught this issue sooner. Alas, here we are. I highly recommend transferring any code reliant upon peaks-1.1.0 to use the new peaks-1.1.2 API.

ReleaseRob Kleffner