Ghost/ghost/oembed-service
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
..
lib 🐛 Fixed HTTP 500 responses when oembed endpoint receives error 2024-03-12 12:31:44 +01:00
test 🐛 Fixed HTTP 500 responses when oembed endpoint receives error 2024-03-12 12:31:44 +01:00
.eslintrc.js Extracted oembed service to separate package 2022-08-15 10:07:06 +02:00
index.js Added eslint rule for file naming convention 2023-05-09 12:34:34 -04:00
package.json Added queueing middleware to handle high request volume (#19887) 2024-03-21 09:25:07 -05:00
README.md Extracted oembed service to separate package 2022-08-15 10:07:06 +02:00

Oembed Service

Oembed service for Ghost

Usage

Develop

This is a monorepo package.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Test

  • yarn lint run just eslint
  • yarn test run lint and tests