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.
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.
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.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15741 | ptomiak | Branch HWS for my use. | ||
//guest/perforce_software/helix-web-services/main/source/helix_web_services/README.md | |||||
#1 | 15622 | tjuricek |
Move source code to 'source/' subdirectory of branch. build/ will remain where it is. |
||
//guest/perforce_software/helix-web-services/main/helix_web_services/README.md | |||||
#2 | 13808 | tjuricek | Finish converting most of the core p4d API into the new monolithic system. | ||
#1 | 13799 | tjuricek |
Start with branch specs hosting in a new monolithic 'helix web services' project. Converting from a microservice to a monolithic architecture due to resource constraints at getting a deployable system running. Additionally, since it's not expected that people will upgrade often, the major benefit of microservices - being able to add services individually without affecting others - is not really a major benefit. The Ruby SDK will be consolidated into a single 'helix web services client' project. It may end up being distributed via Rubygems. This only runs branch specs at the moment. I want to get a CD pipeline setup for the monolithic server before revising more methods. |