Helix Web Services (HWS)
Please note this is alpha software.
Helix Web Services creates a series of service APIs exposed via web technologies, such as HTTP and WebSocket.
Official deployment and documentation is in progress.
Architectural Overview
The core of Web Services is a single Ruby HTTP web application server. The main server is a Sinatra modular project, that mounts many other services, also implemented as Sinatra modular projects. Services can be implemented as generic Rack middleware, we just use Sinatra for the most part.
Access to the Perforce server should be isolated to the core
perforce
service.
Each service has access to using a locally running PostgreSQL server for caching data that can be indexed in interesting ways. There is one PostgreSQL DB in use - web_services - for the purposes of caching.
Background processes are used as well. These are Sidekiq workers. Redis is used as the queuing engine binding these together.