Skip to content

ActionCable support

Matthias Käppler requested to merge 29-action-cable into master

Closes #29 (closed)

This is supposed to be an MVC to get some very basic ActionCable support in compose-kit.

The setup is as follows:

  • define new cable compose service; this is just a puma instance running on a different port, with a different rackup file
  • emit default cable.yml configuring redis to hold subscription state
  • wire up the cable backend to workhorse via cableBackend

That's it.

I cut some complexity to make this as simple as possible:

Puma only. The cable server can only run on puma for now; we can look into adding unicorn support later (I would prefer to first drop thin support from web, and then look to consolidate cable.sh and web.sh)

No auto-config or gck.yml integration. We do not support generating valid puma.rb configs currently. For simplicity I currently rely on a working puma_actioncable.rb config to exist and fail fast if it doesn't. We already have an example file so it should be fairly easy to set this up yourself. An alternative could be to perform a cp of that example file in configure-gitlab-rails.sh, but it would result in broken config, so I'd rather make it explicit that this is a manual step for now.

Side-note to the last comment: The reason we need a custom puma_actioncable.rb at all is that we need to swap out the rackup script. However, due to a bug in Puma, we cannot currently pass that via the CLI as long as there is an existing config/puma.rb which also defines a rackup script (which we do.)

Edited by 🤖 GitLab Bot 🤖

Merge request reports