"You define a contract. AquaJS will read those contracts, and it automatically generates the scaffolding end-to-end," said Venkatachalam Rangasamy, senior software architect at Equinix.
An open source framework, AquaJS generates API calls, handles connection points between frameworks, and solves integration issues. It's built on top of the Express Node.js Web application framework to support microservice design principles, with Express handling HTTP requests. AquaJS applications are written entirely in JavaScript, and the framework itself leverages the MVC development pattern.
Microservices developed via AquaJS are based on services definitions in the YAML data serialization standard. Socket.io, for bidirectional event-based communication, manages WebSockets connections, and workflow is defined for each API contract request. Orchestration capabilities, meanwhile, enable development of customized endpoints, setting up a request-response model.
In AquaJS, connectors are plug-in modules. "Any external system interaction and integration is via connector," Rangasamy said. "Examples of connectors are database connectors, API connectors, and MQ connectors. By default, all these mentioned connectors are available with AquaJS, and developers need to just configure them. AquaJS also supports new connector development to accommodate specific needs."
The inventor of Npm, Isaac Schlueter, had mixed views on the project based on his cursory view of AquaJS documentation. "It's focused on microservices, which is Node’s sweet spot so that's nice." But the project's emphasis on specific convention in how the framework is used could be an issue with some developers. "They mention in their documentation in a few places that they favor convention over configuration, which is great if the convention is something that works for you," he said. "And if not, then it can be a little bit frustrating." AquaJS documentation does provide for some degree of customization, however.