Cloud CMS has two clusters that we run for customers who host apps with us. One cluster is for the "app server" tier (*.cloudcms.net) and the other is the "API" tier (api.cloudcms.com). The app server cluster consists of Node.js servers, and the API is a Java-backend that is stateless and implements the
full REST API:
As such, the API doesn't manage connections directly. Any invocation to it is a one-shot where each request contains everything needed to assert the user's identity and proceed with the operation. The "app server" on the other hand does things like open up connections to the API and pool them for usage by any requests it receives. In a typical deployment, the front-end browser application connects to the app server. And the app server then, in turn, connects to the API. That way, the app server can manage resources on behalf of browsers calling into it, such as connection pools, a fast CDN-capable cache, HTTP headers to optimize load times and more. In other words, the app server is very "web-rendering specific" in it's purpose where as the API is very general to any kind of data usage.
The app server is a Node.js offering that is built around the
code for our "cloudcms-server" module
. This module provides connection pooling and a whole host of additional services (the aforementioned as well as page caching, dependency management, invalidation, virtualized content retrieval for instant preview, etc). The module is also open-source so that you're free to take a look at it and use it or extend it for your own Node.js middle tier.
All you have to do is:
npm install cloudcms-server
And you'll get the latest. The entry point is cloudcms-server/server/index.js for most use cases.