Today I’m announcing the latest evolution in my EWD products. I’m calling it EWD 3.
Unlike the original “legacy” “server-pages” version o EWD (EWD 1) and the Node.js-based EWD.js (EWD 2), EWD 3 isn’t a single product, but a suite of Node.js modules, each of which does just one specific job. The core EWD 3 modules are designed to cleanly interoperate, but can also be used as standalone modules that can be integrated with other Node.js modules. EWD 3 takes the core ideas of and lessons learnt from EWD.js and creates a new, modern and extremely powerful suite of building blocks.
EWD 3 modules can be used to construct different environments such as a REST-based system or to run interactive, browser-based applications that communicate by Ajax and/or WebSockets.
The main aim of the previous generation (EWD.js) was to provide an application run-time container, allowing the simultaneous execution of multiple Node.js applications, backed by a Cache or GT.M database.
In EWD 3, this is just one option: where EWD.js was a set menu, EWD 3 is a buffet – you decide what components and building blocks you need and put them together in the way that meets your needs.
For example, the ewd-xpress module is built using the core EWD 3 modules to create an application run-time container environment that is very similar to EWD.js. However, if you look at the ewd-qoper8-vistarpc module, it uses a different assembly of the core EWD 3 modules to create a REST interface for the VA’s VistA Electronic Healthcare Record (EHR).
The current full set of EWD 3 modules is as follows:
- ewd-qoper8: this provides the core master / worker process infrastructure for EWD 3
- ewd-qoper8-express: Express middleware interfacing for ewd-qoper8
- ewd-qoper8-cache: this provides the interface between ewd-qoper8 worker processes and Cache, via the cache.node interface
- ewd-qoper8-gtm: this provides the interface between ewd-qoper8 worker processes and GT.M, via the NodeM interface
- ewd-session: builds on ewd-document-store to provide a Session Management environment for EWD 3 REST and interactive applications
Application-layer Modules (layered on the EWD 3 Core Modules)
- ewd-qoper8-vistarpc: provides REST access to the RPCs within the VistA EHR
- ewd-xpress: Express middleware and back-end, creating a run-time container environment for Ajax and WebSocket applications
- ewd-client: allows registration of ewd-xpress applications and provides the messaging APIs for communication with ewd-xpress
- ewd-xpress-react: React.js-specific client modules for ewd-xpress applications
- ewd-react-tools: Tools for managing and documenting React.js-based ewd-xpress applications
- ewd-xpress-monitor: React.js-based ewd-xpress application for monitoring and managing an ewd-xpress / ewd-qoper8 environment
You’ll find all these modules in my Github repository at:
They’re also all available as NPM modules. Some of the more recent modules currently only have minimal documentation. Expect that to change over coming months.
Over coming weeks, in the EWD Community Forum I’ll be describing how to build Cache and GT.M based ewd-xpress systems, and how to build React.js-based ewd-xpress applications
Expect to see further enhancement to the EWD 3 modules in coming months, and additional new application layer modules. I’m hoping others will also build new modules on top of the EWD 3 core – it’s now a very powerful, modern, flexible, scalable and highly-performant set of building blocks.
It really is the next EWD generation!