feat: Add grpc_health_probe for ECS health checks#13
Open
laurencehook-lr wants to merge 2 commits intolil5:mainfrom
Open
feat: Add grpc_health_probe for ECS health checks#13laurencehook-lr wants to merge 2 commits intolil5:mainfrom
laurencehook-lr wants to merge 2 commits intolil5:mainfrom
Conversation
The grpc_health_probe binary was being installed in the builder stage but not copied to the final Alpine image, making it unavailable at runtime. This fix ensures the health probe is available for ECS health checks.
tks-socius
added a commit
to Socius-Technologies-SG-Limited/tigerbeetle_api
that referenced
this pull request
Apr 15, 2026
Scope:
* Import migration: github.com/tigerbeetle/tigerbeetle-go/pkg/types was
flattened into the root tigerbeetle_go package in 0.17. All `types.X`
references across grpc/, benchmark/ and the e2e suite now point at
tigerbeetle_go.X.
* Type role-swap: the 0.17 SDK reused the old enum names for new per-
event struct types.
- old enum CreateAccountResult -> CreateAccountStatus (enum)
- old struct AccountEventResult -> CreateAccountResult (struct)
Same shift for Transfer. Client method signatures now return
[]CreateAccountResult / []CreateTransferResult, each holding Status +
Timestamp + Reserved.
* Dense response handling: CreateAccounts and CreateTransfers now
return one entry per input event (including successes), not just
failures. `.Index` is gone; the converter positionally maps
results[i] to inputs[i].
* grpc/convert.go: new AccountResultsToReply/ResultsToReply for dense
arrays; new mapAccountStatus/mapTransferStatus helpers that normalise
the SDK's 0xFFFFFFFF success sentinel to proto's idiomatic 0. Updated
Uint128.BigInt() usage — it now returns *big.Int, not big.Int, so the
lo.ToPtr wrappers are gone. BigIntToUint128 now takes *big.Int.
* grpc/routes.go flushFunc rewrite:
- per-payload demux: each caller gets exactly its own slice of the
dense reply array. Previously every caller got the concatenated
slice of all other callers' failures, which worked by accident
under the sparse model but breaks under dense.
- accumulate replies across multiple transferBatches (pre-existing
bug: the old code overwrote `replies` inside the loop, so only
the last batch's replies survived a multi-batch flush).
- tracked `flushErr` at closure scope instead of leaking the outer
NewApp `err` via scoping shadowing (pre-existing bug).
- reset the running total when starting a new batch so the split
point is actually TB_MAX_BATCH_SIZE and not drift-accumulated.
* Metric counting: TotalCreateTransferTxErr and TotalCreateAccountsTxErr
now increment only for non-Created statuses, not for every result
entry. Added TotalCreateAccountsTx as the account-side parallel to
TotalCreateTransferTx.
* Test updates:
- Mock interfaces: AccountEventResult -> CreateAccountResult,
TransferEventResult -> CreateTransferResult. Mock matchers
("types.QueryFilter" etc) updated to tigerbeetle_go.QueryFilter
since that's the runtime-qualified type name.
- Benchmark and e2e assertions that read `len(results) == 0` as
"all succeeded" flipped to checking len == N with every
status == Created/0. The sparse-empty convention was a 0.16
artefact that no longer holds.
Not yet covered (follow-up commits):
* TooMuchDataError on AccountFilter/QueryFilter.Limit (task lil5#8).
* ClientEvicted / ClientRelease* translation (task lil5#9).
* Bruno/Kreya collection refresh (task lil5#12).
* IPLM-1587 coordination (task lil5#13).
* Final e2e + benchmark validation under docker compose (task #14).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds grpc_health_probe to enable native health checks for gRPC services in Kubernetes and AWS ECS.
Usage
Kubernetes
AWS ECS
Test
🤖 Generated with Claude Code