It is no secret that I left the Java stack in HCL Domino behind for quite a while and moved on to fullstack JavaScript development. For interfacing with Domino, I most commonly use the HCL Domino AppDevPack in its latest incarnations and the JavaScript language bindings.

Lately, I had to revisit a project for a customer we did 2 years ago with this stack. We already used Node/Express to build a REST API layer, the AppDevPack gave us access to all Domino entities we needed plus the IAM Component gave us the act-as-user capabilities to use Domino's trusted security features.

The customer had moved on in the meantime and has started his own development in Node/Express/React and asked us to help him in some ways to streamline the integration into their new landscape. For that, we had to solve four things in the node world:

  • Move the authentication system away from IAM to Keycloak for unified IDP access to resources
  • Update the existing REST API to make use of HTTP/2 and compression to speed up the delivery to the current max,
  • Integrate a new feature that would render a URL from Domino XPages to a PDF in the REST API
  • Clean up the Node.js dependencies and update everything to par to remove potential security breaches in the used packages.

After some head-scratching and some Google'ing around, we were able to achieve all four goals in one single business day. To be fair, to do testing, deployment and documentation, we needed another two days.

The customer was truly impressed - renovations on existing applications had always been a huge trouble so far.

What I like about the Node environment is the huge community behind it. Coming from the small yellow bubble, it is such a relief to be able to use the latest in tooling and technology and to learn from the wast amount of stuff people are doing with that platform. Hooking this up with the great Application Server features of Domino allows very modern applications using a loosely coupled architecture that utilizes the best of breed stuff from any angle (if you count JS in to a best of breed effort, which, usually Java Developers don't, but hey, I am coming from the Business Administration side, so what do I know? ;-)).

The HCL Domino AppDevPack in its lean and non-inversive way of hooking into domino and Node.js made this process really easy. The latest changes in version 1.0.11+ allows the change to literally any IDP now and away from IAM as a single use case component. A huge step forward. The proton task has no issues keeping up the pace of express using HTTP/2 for data delivery - its implementation based on GRPC seems potent enough for even more firepower.

I hope we will see some future development here - HCL would loose a heck of a gun in the AppDev Space. Our customers are happy using it. Of course there are other options to build REST APIs or use REST APIs with Domino but my customers mostly build REST APIs based on their processes not so much with the focus on tooling or app server specifics - they want to get away from silos in general. That's where the AppDevPack shines - focus on your business need not on a huge bolted-on technology stack to do some simple things.

What's your take?