Real-Time Working Group
The GitLab Real-Time Working Group aim is to ship one real-time feature to self-managed customers. Read more!
Attributes
Property | Value |
---|---|
Date Created | March 12, 2020 |
Date Closed | November 1, 2021 |
Slack | #wg_real-time (only accessible from within the company) |
Google Doc | Real-Time Working Group Agenda (only accessible from within the company) |
Epic & Design Doc | Use ActionCable for real-time features |
Feature Issue | View real-time updates of assignee in issue / merge request sidebar |
Associated OKRs | Plan: Support incremental ACV |
Business Goal
To ship one real-time feature to self-managed customers.
Exit Criteria - Phase 1
(✅ Done, ✏️ In-progress)
One Real-Time Feature, Usable by Single Instance/Small Cluster, Self-Hosting Customers => 100%
- Supports starting Action Cable in embedded mode ✅
- Omnibus includes ability to start embedded Action Cable with config/cable.yml ✅
- GDK supports configuration of Action Cable ✅
- Workhorse Proxies Action Cable requests ✅
- Backend work is complete to upgrade websocket connections and push signal when assignees are updated on an issue ✅
- Frontend work is complete to respond to WebSockets with an update to the sidebar ✅
- Action Cable settings are exported to Prometheus ✅
- Track ActionCable settings in Usage Ping ✅
- Documentation enabled to advise customers on using the feature in small deployments ✅
- Feature usable conditionally when Action Cable is enabled ✅
Exit Criteria - Phase 2
(✅ Done, ✏️ In-progress)
One Real-Time Feature, Usable on larger deployments => 100%
- Omnibus includes ability to start standalone Action Cable Puma Server with config/cable.yml ✅
- GDK allows configuration of standalone Action Cable and starts Puma server ✅
- Workhorse Proxies Action Cable requests ✅
- Establish reference architectures for supporting WebSocket connections at scale ✅
- Helm charts allow configuration of embedded Action Cable in
webservice
service ✅ - QA work complete to test initial feature ✅
- Feature flag defaulted to on, with suitable fallback ✅
Working, Real-Time Feature Available on .com => 100%
- Containerization of Real-Time Feature including Action Cable and Puma ✅
- Update of Helm charts allowing use of multiple Redis instances ✅
- WebSocket requests supported in Kubernetes ✅
- Deployment to a non-production environment for manual, full-stack testing ✅
- Action Cable requests served by Kubernetes pods on Staging ✅
- Action Cable requests served by Kubernetes pods on Canary ✅
- Readiness-review complete to ensure observabilty & contain risk ✅
- Action Cable requests served by Kubernetes pods on Production ✅
- Default to embedded Action Cable enabled ✅
Design Document
Technical decisions and rationale are captured in this design document.
Roles and Responsibilities
Working Group Role | Person | Title |
---|---|---|
Executive Sponsor | Christopher Lefelhocz | VP of Development |
Facilitator | John Hope | Engineering Manager, Plan |
Functional Lead | Heinrich Lee Yu | Senior Backend Engineer, Plan |
Functional Lead | Gabe Weaver | Senior Product Manager, Plan |
Functional Lead | Sean McGivern | Staff Backend Engineer, Scalability |
Member | Scott Stern | Frontend Engineer, Plan |
Member | Ben Kochie | Site Reliability Engineer |
Member | Natalia Tepluhina | Staff Frontend Engineer, Plan |
Member | Matthias Käppler | Senior Engineer, Memory |
Member | Jake Lear | Engineering manager, Plan |
Meetings
Meetings are recorded and publicly available on YouTube in the Real-Time Working Group playlist.
Last modified August 16, 2024: Shorten heading to less than 100 characters (
5ba85674
)