centrifugal / centrifugal/protocol

Proposal: Extend protocol to allow clients send metadata for backend-proxycalls

Open
#26 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
10
Forks
13
Avg merge
5h 9m
Merged PRs (30d)
15

Description

**Problem:**

We use Centrifugo to transmit data to our backend server via RPC calls and channel publications. However, we have a need to transmit telemetry for specific calls, which the current implementation does not support.

**Proposal:**

One solution we see is to extend the Centrifugo protocol to allow the transmission of metadata (key-value pairs) alongside data in RPC and Publish calls. This would enable specifying which keys should be processed and passed into headers during proxying of calls.

**Solution Options:**

- Allow users to pass any string key-value pairs into metadata. However, this may lead to misuse.

- Take a more localized approach, considering that telemetry might be needed not only by us but also by other Centrifugo users. Centrifugo could implement a metadata transmission mechanism, but only allow clients to send data that it supports, as specified in all client SDKs.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no specific files or tests; begin by reviewing the protocol definitions and the RPC and Publish call paths described. Before implementation, resolve whether metadata is arbitrary or limited to supported keys, then define the protocol and proxy-header behavior as the completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.