[RUM-14243] Implement transport layer & batch management#19
Merged
cdn34dd merged 9 commits intoMar 11, 2026
Conversation
|
✅ Code Quality ✅ Code Vulnerabilities ✅ Library Vulnerabilities 🎉 All green!🛠️ No new code quality issues 🔗 Commit SHA: 417150a | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
833432d to
92e4ab8
Compare
2c486bc to
4a2543c
Compare
bcaudan
reviewed
Mar 3, 2026
bcaudan
reviewed
Mar 9, 2026
76bc066 to
9de4d78
Compare
- BatchManager - Controls the batch schedule logic - BatchConsumer - Responsible for handling the batch uploads and deletion - BatchProducer - Handles the batch saving and rotation
76ed5cc to
ddef135
Compare
ddef135 to
417150a
Compare
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.
Motivation
Implement the transport layer responsible for buffering RUM events to disk and uploading them to the Datadog intake on a configurable schedule.
Changes
Batch layer:BatchProducerwrites events as to.tmpfiles, rotates them to.logwhen full.BatchConsumerreads.logfiles and POSTs them to the intake.BatchManagerorchestrates both on a periodic upload cycle.Transport layer: Routes SERVER events by track type to per-domain BatchManager instances. Domains implement an init() method called after batching is wired up, ensuring no events are dropped during startup.RumCollection: Implements Domain interface, deferringViewCollectioncreation toinit().Test instructions
Checklist