Skip to content

Websockets Service

The websockets service is used to handle Action Cable websocket requests to /-/cable. This service is mainly used to deliver real-time updates to the web UI.

Action Cable uses Redis for PUBSUB and does not persist any subscriptions or broadcasted messages.

When a message is delivered to the client, Rails code like permission checks can be executed. So just like any other Rails node, this service depends on the DB, Gitaly, and all Redis instances.

Issues, merge requests, and other objects use GraphQL subscriptions to update data on the current page in real-time.

When a subscription is triggered, the GraphQL subscription query is executed for each matched subscriber. These executions are logged in the Rails logs under the GraphqlChannel controller.