[contestms-dev] Multiple processes vs multiple services in CMS

  • From: Ludwig Schmidt <ludwigschmidt2@xxxxxxxxx>
  • To: contestms-dev@xxxxxxxxxxxxx
  • Date: Sat, 16 Nov 2013 18:34:54 -0500

Hi all,

Fabian and I are currently working on a new service for CMS that
automatically syncs the task data from a git repository into CMS (more on
this later). The service consists of three main parts:

- One part polls the given git repository regularly and inserts new work
entries into the database if it finds new commits.

- Another part is responsible for actually building the tasks in the git
repository (running test case generators etc.) and syncing them into CMS.

- The third part is a simple web interface showing the state of the syncing
process (with history etc.).

Currently we are debating how we should implement these three parts in CMS.
The two main questions are:

- Should the git polling process and the sync process be separate services
communicating via RPCs? Or should they be two processes in the same
program, using python's multiprocessing library?

- Should we add the web UI into the admin web server or write a separate
web service for it?

Ideally, we would eventually like to merge these changes back into CMS as a
new task importer. So getting your feedback on the overall design would be
very helpful.

Best,
Ludwig

Other related posts: