Architecture summary
Architecture summary
The new CAWI will consist of multiple modules, each with a well-defined task and stable API to interface with the other modules in the CAWI ecosystem. To support this, modules will be published as NPM packages, hosted on GIDE's gitlab server.
Modules will be of various types:
- Javascript libraries which are used together to build a web application or service
- Independently deployable web services which communicate via a network API
- Other standalone tools which use the file formats defined in CAWI system
This approach largely follows the "Modular Monolith" architecture - a CAWI survey will be deployed as a standalone web application, locally incorporating specific versions of each CAWI module. The control and responsibility of keeping a survey up to date with the latest CAWI versions is with the survey author.
The aim is to encourage more development and innovation in the individual modules by providing a mechanism to make potentially breaking changes without affecting any existing surveys.