This work is now complete, and just this week it was launched. It's known as EWD 3, reflecting the fact that it's the 3rd generation of the original EWD concept. EWD 3 is all Open Source (Apache 2-licensed), and you can use it today with pretty much any version of Caché (and Ensemble too).
Unlike the previous generations, 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 third-party 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.
So, 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, whether that's to create a REST-based system, a complex run-time environment in which to run interactive, browser-based applications that communicate by Ajax and/or WebSockets, or some other environment of your choice.
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).
So what does EWD 3 consist of? Well, the current set of EWD 3 modules includes:
- 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-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.
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 based ewd-xpress systems, and how to build React.js-based ewd-xpress applications, so make sure you visit this forum. Look for articles whose titles start with "EWD 3".
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.