Skip to content

Conversation

@muhamadazmy
Copy link
Contributor

@muhamadazmy muhamadazmy commented Nov 12, 2025

[Ingestion] ingestion-client crate

  • ingestion-client implements the runtime layer that receives WAL envelopes, fans it out to the correct partition, and tracks completion. It exposes:
    • IngestionClient, enforces inflight budgets, and resolves partition IDs before sending work downstream.
    • The session subsystem that batches IngestRecords, retries connections, and reports commit status to callers.
  • ingestion-client only ingests records and notify the caller once the record is "committed" to bifrost by the PP. This makes it useful to implement kafka ingress and other external ingestion

Stack created with Sapling. Best reviewed with ReviewStack.

@muhamadazmy muhamadazmy force-pushed the pr3976 branch 2 times, most recently from 7dc9605 to 767c781 Compare November 12, 2025 09:57
@muhamadazmy muhamadazmy marked this pull request as ready for review November 12, 2025 10:50
@muhamadazmy muhamadazmy force-pushed the pr3976 branch 4 times, most recently from ea999cc to 5b488c7 Compare November 13, 2025 08:36
@muhamadazmy muhamadazmy changed the title [Ingress] ingress-core crate [Ingress] ingress-client crate Nov 13, 2025
@muhamadazmy muhamadazmy force-pushed the pr3976 branch 2 times, most recently from e9f749a to 484bced Compare November 13, 2025 11:27
@muhamadazmy muhamadazmy force-pushed the pr3976 branch 5 times, most recently from 98d2099 to 6fcdd50 Compare November 17, 2025 11:40
@tillrohrmann tillrohrmann linked an issue Nov 17, 2025 that may be closed by this pull request
Copy link
Contributor

@tillrohrmann tillrohrmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for creating this PR @muhamadazmy. The changes look really great :-) I left a few minor comments and questions around the handling of cancellations, the need for avoiding lock contention in the SessionManager and whether chunking based on bytes would be possible.

@muhamadazmy muhamadazmy force-pushed the pr3976 branch 7 times, most recently from 32dc18e to e8839b2 Compare November 28, 2025 13:49
@muhamadazmy muhamadazmy changed the title [Ingress] ingress-client crate [Ingestion] ingestion-client crate Dec 1, 2025
@muhamadazmy muhamadazmy force-pushed the pr3976 branch 2 times, most recently from ab0b964 to 9733625 Compare December 1, 2025 12:31
- `ingestion-client` implements the runtime layer that receives WAL envelopes, fans it out to the correct partition, and tracks completion. It exposes:
  - `IngestionClient`, enforces inflight budgets, and resolves partition IDs before sending work downstream.
  - The session subsystem that batches `IngestRecords`, retries connections, and reports commit status to callers.
- `ingestion-client` only ingests records and notify the caller once the record is "committed" to bifrost by the PP. This makes it useful to implement kafka ingress and other external ingestion
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.

New ingress API

2 participants