Skip to content

feat(shard-distributor): add canary gRPC protocol for executor-to-executor pings#7475

Merged
jakobht merged 1 commit intocadence-workflow:masterfrom
jakobht:add-canary-grpc-protocol
Nov 26, 2025
Merged

feat(shard-distributor): add canary gRPC protocol for executor-to-executor pings#7475
jakobht merged 1 commit intocadence-workflow:masterfrom
jakobht:add-canary-grpc-protocol

Conversation

@jakobht
Copy link
Member

@jakobht jakobht commented Nov 24, 2025

What changed?
Added ShardDistributorExecutorCanaryAPI service with a Ping RPC method. Includes proto definition and generated Go code.

Why?
Enable canary testing to verify executor-to-executor communication and shard ownership accuracy. The Ping RPC allows one executor to ping another that owns a specific shard, validating:

  • Executors can route to each other based on shard ownership
  • Shard ownership information is accurate
  • The shard distributor is functioning correctly

How did you test it?
Proto compiles successfully and generates valid Go code. Will be used by canary components in follow-up PRs.

Potential risks
None - this only adds a proto definition with no implementation yet.

Release notes

Documentation Changes
None

Define ShardDistributorExecutorCanaryAPI service that allows one executor
to ping another executor that owns a specific shard. This is used for
canary testing to verify that:
1. Executors can route to each other based on shard ownership
2. Shard ownership information is accurate
3. The shard distributor is functioning correctly

The Ping RPC takes a shard key and namespace, and returns whether the
receiving executor owns that shard along with the executor ID.

Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
@jakobht jakobht merged commit 4cf0d4f into cadence-workflow:master Nov 26, 2025
59 of 60 checks passed
jakobht added a commit that referenced this pull request Nov 30, 2025
…checks (#7486)

Depends on #7475 being
merged

**What changed?**
Added server-side ping handler for canary health checks in the shard
distributor. The handler responds to ping requests from other executors,
verifying shard ownership.

**Why?**
Enables executor-to-executor health verification in the canary system.
The ping handler allows executors to check if peer executors own
specific shards and are functioning correctly.

**How did you test it?**
Unit tests

**Potential risks**

**Release notes**

**Documentation Changes**

---------

Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
jakobht added a commit that referenced this pull request Dec 2, 2025
…ip verification (#7487)

Depends on #7475 and
#7478 being merged

**What changed?**
Added canary pinger component that periodically sends ping requests to
shard owners to verify executor-to-executor communication and shard
ownership.

**Why?**
The canary pinger provides active monitoring of the shard distributor's
routing and ownership mechanisms by:
- Periodically selecting random shards and pinging their owners
- Verifying that the pinged executor owns the shard
- Detecting communication failures between executors

This is part of the canary ping/pong implementation that validates
end-to-end executor-to-executor gRPC communication.

**How did you test it?**
Unit tests

**Potential risks**

**Release notes**

**Documentation Changes**

---------

Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
@jakobht jakobht deleted the add-canary-grpc-protocol branch March 2, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants