Ghost/package.json
Steve Larson a1c4e64994
Added queueing middleware to handle high request volume (#19887)
ref https://linear.app/tryghost/issue/CFR-4/
- added request queueing middleware (express-queue) to handle high
request volume
- added new config option `optimization.requestQueue`
- added new config option `optimization.requestConcurrency`
- added logging of request queue depth - `req.queueDepth`

We've done a fair amount of investigation around improving Ghost's
resiliency to high request volume. While we believe this to be partly
due to database connection contention, it also seems Ghost gets
overwhelmed by the requests themselves. Implementing a simple queueing
system allows us a simple lever to change the volume of requests Ghost
is actually ingesting at any given time and gives us options besides
simply increasing database connection pool size.

---------

Co-authored-by: Michael Barrett <mike@ghost.org>
2024-03-21 09:25:07 -05:00

124 lines
3.8 KiB
JSON

{
"name": "ghost-monorepo",
"version": "0.0.0-private",
"description": "The professional publishing platform",
"private": true,
"repository": "https://github.com/TryGhost/Ghost",
"author": "Ghost Foundation",
"license": "MIT",
"workspaces": [
"ghost/*",
"apps/*"
],
"monorepo": {
"public": false,
"internalPackages": true,
"repo": "https://github.com/TryGhost/Ghost",
"scope": "@tryghost"
},
"eslintIgnore": [
"**/node_modules/**"
],
"scripts": {
"archive": "nx run ghost:archive",
"build": "nx run-many -t build",
"build:clean": "nx reset && rimraf -g 'ghost/*/build' && rimraf -g 'ghost/*/tsconfig.tsbuildinfo'",
"dev:debug": "DEBUG_COLORS=true DEBUG=@tryghost*,ghost:* yarn dev",
"dev:admin": "node .github/scripts/dev.js --admin",
"dev:ghost": "node .github/scripts/dev.js --ghost",
"dev": "node .github/scripts/dev.js",
"fix": "yarn cache clean && rimraf -g '**/node_modules' && yarn",
"knex-migrator": "yarn workspace ghost run knex-migrator",
"setup": "yarn && git submodule update --init && NODE_ENV=development node .github/scripts/setup.js",
"reset:data": "cd ghost/core && node index.js generate-data --clear-database --quantities members:100000,posts:500 --seed 123",
"reset:data:xxl": "cd ghost/core && node index.js generate-data --clear-database --quantities members:2000000,posts:0,emails:0,members_stripe_customers:0,members_login_events:0,members_status_events:0 --seed 123",
"docker:reset": "docker-compose -f .github/scripts/docker-compose.yml down -v && docker-compose -f .github/scripts/docker-compose.yml up -d --wait",
"lint": "nx run-many -t lint",
"test": "nx run-many -t test",
"test:unit": "nx run-many -t test:unit",
"main": "yarn main:monorepo && yarn main:submodules",
"main:monorepo": "git checkout main && git pull ${GHOST_UPSTREAM:-origin} main && yarn",
"main:submodules": "git submodule sync && git submodule update && git submodule foreach \"git checkout main && git pull ${GHOST_UPSTREAM:-origin} main && yarn\"",
"prepare": "husky install .github/hooks"
},
"resolutions": {
"@tryghost/errors": "1.3.1",
"@tryghost/logging": "2.4.13",
"moment": "2.24.0",
"moment-timezone": "0.5.23"
},
"renovate": {
"extends": [
"github>tryghost/renovate-config:quiet"
],
"rebaseWhen": "never",
"ignoreDeps": [
"got",
"intl-messageformat",
"moment",
"moment-timezone",
"simple-dom",
"ember-drag-drop",
"normalize.css",
"validator",
"codemirror",
"faker",
"ember-cli-code-coverage",
"ember-cli-terser"
],
"ignorePaths": [
"test",
"ghost/admin/lib/koenig-editor/package.json"
],
"packageRules": [
{
"groupName": "ember-basic-dropdown addons",
"packagePatterns": [
"^ember-basic",
"^ember-power"
]
},
{
"groupName": "ember core",
"packageNames": [
"ember-source",
"ember-cli",
"ember-data"
]
},
{
"groupName": "disable css",
"matchFiles": [
"ghost/admin/package.json"
],
"packagePatterns": [
"^postcss",
"^css"
],
"packageNames": [
"autoprefixer",
"ember-cli-postcss"
],
"enabled": false
}
]
},
"lint-staged": {
"*.js": "eslint"
},
"devDependencies": {
"chalk": "4.1.2",
"concurrently": "8.2.2",
"eslint": "8.44.0",
"eslint-plugin-ghost": "3.4.0",
"eslint-plugin-react": "7.33.0",
"husky": "8.0.3",
"lint-staged": "14.0.1",
"nx": "16.8.1",
"rimraf": "5.0.5",
"ts-node": "10.9.2",
"typescript": "5.4.3",
"inquirer": "8.2.6"
}
}