Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • Kotahi Kotahi
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 244
    • Issues 244
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 57
    • Merge requests 57
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • kotahi
  • KotahiKotahi
  • Issues
  • #41

Closed
Open
Created Jan 26, 2021 by Yannis Barlas@yannisOwner

Xsweet as a service

The current setup for xsweet conversions (docx to html) is as follows:

There is a docker container that contains both the necessary code for xsweet conversions, as well as an api endpoint that gets attached as a pubsweet component. Conversions are then wrapped in a 'job' that gets registered with pg-boss when started.

This causes a number of issues:

  • There is an awkward setup where the docker container must run after the server has finished starting, otherwise there is no place for the api endpoint to attach.
  • The container for conversions is bound in a 1-to-1 relationship with the app. This means that for every app deployment, one container with xsweet must come with it. This will cause scalability issues down the line.
  • The feature is bound to pg-boss, which we might want to move away from in the future.

The expected outcome of this issue that fixes the above is to:

  • Use xsweet as a completely independent micro-service (with its own db). This will allow deployment engineers to scale xsweet deployments independently of the app and to potentially use the same service for multiple deployments of kotahi (or other apps like editoria). The code for this service already exists here. We will need to add it in our development docker-compose file.
  • The api part of the feature should move to the app's server code.

The one thing we lose with this is the job queue part of conversions, but this can be added to the xsweet service (if needed) down the road.

Assignee
Assign to
Time tracking