Skip to content

real-time-streams - #203

Merged
ryancurtis1 merged 30 commits into
mainfrom
real-time-streams
Sep 15, 2026
Merged

ryancurtis1 merged 30 commits into
mainfrom
real-time-streams

Conversation

@mintlify

@mintlify mintlify Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Mintlify

10 threads from 2 users in Mintlify

Review in Mintlify

mintlify Bot added 2 commits August 19, 2026 16:50
- Created docs/real-time-event-streams/overview.mdx
- Created docs/real-time-event-streams/setup.mdx
- Created docs/real-time-event-streams/delivery-and-reliability.mdx
- Created docs/real-time-event-streams/states-and-monitoring.mdx
- Updated docs.json

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams.mdx
- Updated docs/real-time-event-streams/states-and-monitoring.mdx
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx
- Updated docs/real-time-event-streams/overview.mdx
- Updated docs/real-time-event-streams/setup.mdx
- Updated docs.json

Mintlify-Source: dashboard-editor
@ryancurtis1

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

@ryancurtis1
ryancurtis1 marked this pull request as draft August 28, 2026 19:22
@greptile-apps

greptile-apps Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 3/5

The PR is not ready to merge because the documentation root remains empty and the required troubleshooting and FAQ coverage is still missing.

Findings

  1. P2 Missing troubleshooting and FAQ

Reviews (12) · Last reviewed commit: "Merge branch 'main' into real-time-strea..."

Comment thread docs.json Outdated
Comment thread docs/real-time-event-streams.mdx
Comment thread docs/real-time-event-streams/states-and-monitoring.mdx Outdated
Comment thread docs/real-time-event-streams/setup.mdx Outdated
Comment on lines +145 to +158

{/* PLACEHOLDER: Describe which changes can be made in place (event types, filters, template, auth) and which require pausing the Sync. Clarify how in-flight events are handled during edits. */}

## Next steps

<CardGroup cols={2}>
<Card title="Delivery and reliability" icon="shield-check" href="/docs/real-time-event-streams/delivery-and-reliability">
Retries, failed events log, and at-least-once delivery.
</Card>

<Card title="States and monitoring" icon="chart-line" href="/docs/real-time-event-streams/states-and-monitoring">
Destination and Sync states, plus how to monitor health.
</Card>
</CardGroup>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Missing troubleshooting and FAQ

The new documentation ends without the troubleshooting and FAQ material required by the automatically discovered STREAM-310 acceptance criteria, leaving customers without consolidated recovery guidance for common configuration failures.

Source Used: Linear — Public docs

Resolve merge conflict in docs.json by taking the updated structure from main branch.
The main branch restructured guides navigation, moving guides from
guides-by-use-case/empower-your-team to a flatter structure with better
grouping. Since the real-time-streams branch is adding documentation
about real-time event streams and not modifying the guides structure,
we accept the updated version from main.

Co-authored-by: ryancurtis1 <176308989+ryancurtis1@users.noreply.github.com>

Copilot AI commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

✅ Merge conflicts resolved. I've merged the origin/main branch into real-time-streams and resolved the conflict in docs.json by accepting the updated guides navigation structure from main. The conflict was caused by guide path restructuring (e.g., guides-by-use-case/empower-your-team/mcpguides/mcp), which is now reflected in the merged result.

The merge commit has been created and pushed.

- **Sync** — a rule that binds a set of filtered events and a Liquid payload template to a Destination.
- **Failed events log** — a 72-hour record of events that could not be delivered after all retries, retained with the destination HTTP response for debugging.

<Tip>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this is an empty callout in the docs. should add something here or remove

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@copilot can you remove this empty callout please

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Done. Removed the empty callout at line 59 of overview.mdx.

Comment thread docs/real-time-event-streams.mdx Outdated
@@ -0,0 +1,3 @@
---
title: "docs/real-time-event-streams"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

to the greptile comments point the way this is displayed current should be updated. i don't think this page necessarily needs a bunch of content but we should have something (at least a title instead of the path)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@copilot can you fix this please

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Done. Replaced the path-based title with "Real-Time Event Streams" and added a proper description to match the pattern of other index pages.

Remove the empty <Tip> block that contained only a placeholder
comment at line 59 of docs/real-time-event-streams/overview.mdx.

Co-authored-by: ryancurtis1 <176308989+ryancurtis1@users.noreply.github.com>
Replace the path-based title "docs/real-time-event-streams" with
a proper customer-facing title and add a description to match
the pattern of other index pages in the docs.

Co-authored-by: ryancurtis1 <176308989+ryancurtis1@users.noreply.github.com>

Up to **5 retries per event** with exponential backoff over approximately **12 minutes**:

| Attempt | Delay before attempt |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

the code does up to 5 total attempts (1 initial + 4 retries) with exponential backoff starting at 200ms (~3s total); 429s honor Retry-After, capped at 10s.

retries run inline in the same consumer path, so we keep the window to seconds - a long in-process backoff would block the batch and hold PubSub messages. longer recovery is handled by pausing the stream and surfacing the error, not by retrying for minutes. Can we update the table to match?


- **Destination** — the webhook endpoint and its authentication configuration.
- **Sync** — a rule that binds a set of filtered events and a Liquid payload template to a Destination.
- **Failed events log** — a 72-hour record of events that could not be delivered after all retries, retained with the destination HTTP response for debugging.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

In beta the failed log is an aggregated roll-up: one row per stream + status + response code per window, with the response status code, a short error detail, and counts. no per-event entries, no headers/body, no payload samples. Can we align the description?

| `5xx` response | Yes | Server-side error at the destination. |
| Connection timeout / network error | Yes | Includes DNS failures and TLS handshake errors. |
| `429 Too Many Requests` | Yes | Handled via backpressure. See [Rate limits](#rate-limits-and-backpressure). |
| `4xx` response (other than 429) | No | Surfaced immediately as a destination configuration error. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Only 401/403 are terminal (auth). Other 4xx (400/404/422…) are retried as "unreachable" and, if they keep failing, the stream is paused (DESTINATION_UNHEALTHY) - so they are retried and do pause, the opposite of this section. Can we correct it?

Comment on lines +22 to +23
| `unhealthy` | Deliveries are partially failing but no event has exhausted its retries yet. Investigate soon. |
| `paused_rate_limit` | Temporarily paused after a `429` response from the destination. Auto-resumes when the destination recovers. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

In beta there's no unhealthy running state and no paused_rate_limit auto-resume.

a terminal failure - including rate-limit after retries - pauses the stream and surfaces the health reason. Can we mark these as GA-target and drop them from the beta states table?

| 5 | 2 minutes |
| 6 | 10 minutes |

Retries are processed in a separate queue, so they never block new events from streaming.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Small correction: retries run in the same consumer path, not a separate queue.


## Delivery guarantees at a glance

- **At-least-once delivery.** Every outbound request includes an `X-Mixpanel-Insert-Id` header so you can deduplicate on your side.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This is a current gap - the X-Mixpanel-Insert-Id header isn't sent yet. i've filed a ticket and will fix it. https://linear.app/mixpanel/issue/STREAM-860/send-x-mixpanel-insert-id-header-on-webhook-deliveries

can we drop the X-Mixpanel-Insert-Id statements for now and add them back once it lands?

mintlify Bot added 3 commits September 15, 2026 20:30
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/overview.mdx

Mintlify-Source: dashboard-editor
mintlify Bot added 2 commits September 15, 2026 20:54
- Updated docs/real-time-event-streams/overview.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/overview.mdx

Mintlify-Source: dashboard-editor
mintlify Bot added 4 commits September 15, 2026 20:57
- Updated docs/real-time-event-streams/overview.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/setup.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/setup.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/setup.mdx

Mintlify-Source: dashboard-editor
mintlify Bot added 5 commits September 15, 2026 21:02
- Updated docs/real-time-event-streams/setup.mdx
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/delivery-and-reliability.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/states-and-monitoring.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/states-and-monitoring.mdx

Mintlify-Source: dashboard-editor
- Updated docs/real-time-event-streams/states-and-monitoring.mdx

Mintlify-Source: dashboard-editor
@ryancurtis1
ryancurtis1 marked this pull request as ready for review September 15, 2026 21:09
@ryancurtis1
ryancurtis1 enabled auto-merge (squash) September 15, 2026 21:27
@mherrman
mherrman self-requested a review September 15, 2026 21:34
@ryancurtis1
ryancurtis1 merged commit 3f3f409 into main Sep 15, 2026
6 checks passed
@ryancurtis1
ryancurtis1 deleted the real-time-streams branch September 15, 2026 21:35
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.

4 participants