Everything You Need to Know About Domino V10 and Node.js

Everything You Need to Know About Domino V10 and Node.js

Domino has enabled you to build all kinds of robust solutions. And now, by adding JavaScript and Node.js, there are exciting new options.

Bringing JavaScript and Node.js to Domino was a natural evolution for us.

It enables any JavaScript developer to combine Domino with Node.js and JavaScript for full-stack web development to build new applications or enhance existing ones while retaining the proven business logic and data on the Domino platform. In addition, HCL’s Andrew Davis shared what the new DominoDB NPM package is capable of providing in the Domino V10 offering, including native access to Domino data and agents using Node.js.

With the combination of the new JavaScript and Node.js integration, and the new Domino Query Language (DQL) — along with access to the world of JavaScript and one of the largest collections of open-source libraries — you can learn new skills that extend the value of what you build with Domino as well as your value to the organization. You can make a real difference.

Our webcast covered the essentials of what you can achieve using Domino for full-stack web and mobile development with the latest enterprise framework, Node.js. (For those of you who missed the live event, the replay is available here.)

In addition to this JavaScript-based innovation for Domino, IBM is committed to supporting the use of Domino Designer and XPages for the foreseeable future. More details about what is new in XPages will be forthcoming.

For those Domino developers who are either new to, or have recently become aware of, Node.js, JavaScript, and Node-RED, learn more about each feature below.

Moving from a traditional Notes development, or even a XPages development, to developing with a JavaScript front-end and API access to the database will involve a learning curve.

This approach allows for greater standardization and use of the latest, best-of-breed technologies, with continuous innovation from the Node.js and JavaScript communities.

Microservices

A microservices approach to the architecture of your new applications requires greater planning up front and coding for failure. However, microservices make refactoring and extensibility much less onerous as you evolve the solution you are building or extending.

Swagger is the de facto approach for API documentation, online, on-prem, or in Docker.

PATCH is best for updating documents but needs enabling on the Domino server.

Node-RED is a powerful, browser-based tool for wiring together microservices to form flows with the ability to secure the admin console flexibly.

Implementing Node-RED on-premises is a painless introduction to Node.js.

As the demo video shows, web sockets allow real-time communication between the server and client-side browsers.

Front-end Frameworks and IDEs

There are a variety of front-end frameworks for building a user experience, such as AngularJS, Vue and React that work with Node.js at the back-end.

The critical difference between these frameworks and XPages is that you need to manage session state persistence.

For our demo we chose React with Redux for state management. React has a lot of strict rules that add code complexity, however the end result is more standardized.

Visual Studio Code is a popular development IDE with a variety of extensions. However, there are many others such as Sublime and Atom.

Deployment

Agilit-e is a microservice profiling portal that assists developers with day-to-day operations and integrations.

Kubernetes is a container orchestration platform that can be added to the mix to group and manage Docker containers for better DevOps.

Istio can be injected as a sidecar proxy to containers to better manage and secure communication to and from the relevant container.

See our demos for how to leverage these key new features.

In the first video we show logging into the React app, authenticating against Domino, and creating a Todo. Although the server delivering the React app is in a U.S. data center and the Domino server is in the UK, you’ll see that the creation of a Todo is very quick.

In the second video we show Node-RED. This is again secure and authenticating against Domino — it’s Domino all the way down. Node-RED can create scheduled tasks. Here we’re calling a REST endpoint on Domino and note that the “updateUrl” points back to the Node-RED server. This allows us to chain jobs. Keep an eye on the application in the background when we run the job. You’ll see that it’s using web sockets to automatically update the browser from a backend process.

In the third video we show the extensibility by using Node-RED functions to create a Todo from Watson Workspace. This uses a Watson Assistant conversation flow to gather information and post the Todo to Domino. Note again how the application in the background is using web sockets to automatically update the browser. And this just re-used the same APIs created for the React app — so no additional effort on Domino!

Lastly, here are some invaluable resources, tutorials, and informational links for you to explore:

Domino developers can request early access to the world of JavaScript and Node.js through the IBM Domino AppDev Pack. Request early access via the sign up link here:

Be on the look-out for information on our application development strategy along with a technical 101 training webcast. And, if you haven’t already, sign up for our Domino newsletter to get the latest, best news.