Skip to content

Conversation

phil-snowplow
Copy link
Contributor

@phil-snowplow phil-snowplow commented Aug 19, 2025

Draft PR for new Event Forwarding documentation.

Overview of changes

New event forwarding documentation structure:

  • Updated Main event forwarding page to focus mostly on "event forwarding" as a feature, and then mention and link to "alternative approaches" like Snowbridge, Custom Integrations, and GTM SS
  • Created integrations library overview page (docs/destinations/forwarding-events/integrations/index.md)
  • Added Braze integration docs (docs/destinations/forwarding-events/integrations/braze/index.md)
  • Added reference documentation (docs/destinations/forwarding-events/reference/index.md)
  • Removed native integrations page and reorganized content

New component:

  • Created EventForwardingSchemaTable React component for displaying default field mapping info

Open questions

  • Instead of waiting to merge changes until the GA release, could we just add preview notice to the top of the relevant pages?
  • This change introduces some inconsistency between the Event Forwarding and warehouse/lake loaders sections: all the details for specific loaders are in API Reference, but for Event Forwarding I'm proposing we bring them up to the main section
  • Should we kill the custom integrations page? Or mark as deprecated? AFAIK, we don't want customers to read directly off the enriched stream anymore.
  • Should we break out Error handling and troubleshooting into its own page?

Still to do

  • Update /docs/fundamentals/destinations/ section to reflect the changes above
  • Update the GTM-SS Braze and Amplitude pages to say deprecated
  • Write Amplitude page
  • Add more details around troubleshooting?
  • Incorporate screenshots/diagrams
  • update docs/api-reference/failed-events/index.md with new event forwarding failure type

@phil-snowplow phil-snowplow added the do not merge Flag to denote a Issue or PR which should not yet be merged (usually pending a release) label Aug 19, 2025
Copy link

netlify bot commented Aug 19, 2025

Deploy Preview for snowplow-docs ready!

Name Link
🔨 Latest commit cdc7b56
🔍 Latest deploy log https://app.netlify.com/projects/snowplow-docs/deploys/68c1cd8016753e00087879ee
😎 Deploy Preview https://deploy-preview-1371--snowplow-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mscwilson
Copy link
Collaborator

re Should we break out Error handling and troubleshooting into its own page?

yeah I find it a bit odd to have this section so prominently on the main landing page. A separate page would be good - and consistent with the GTM SS section that has a Testing and debugging page

- **Failure timestamp**: when the error occurred
- **Transformation state**: data state at the point of failure

### Querying failed event logs
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this section AWS only?


## Failure types and retry logic

Forwarders uses the same retry logic and failure handling as the underlying [Snowbridge failure model](/docs/api-reference/snowbridge/concepts/failure-model/index.md). Snowplow handles event forwarding failures differently depending on the type:
Copy link
Contributor

Choose a reason for hiding this comment

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

Said on call but commenting for reference: I would remove the dependency on api docs and just describe the failure behaviours as below, which are already quite good!

Won't die on this hill but think it's the wiser move


Forwarders uses the same retry logic and failure handling as the underlying [Snowbridge failure model](/docs/api-reference/snowbridge/concepts/failure-model/index.md). Snowplow handles event forwarding failures differently depending on the type:

- **Invalid data failures**: Snowplow treats events that fail transformation or violate destination API requirements as unrecoverable. Event forwarding creates [event forwarding error failed events](https://iglucentral.com/?q=event_forwarding_error) and logs them in your cloud storage bucket without retry.
Copy link
Contributor

Choose a reason for hiding this comment

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

Would remove. Everything here should be covered in the points below.

"Invalid" concept is an implementation detail. Some API failures are treated the same but that's best dealt with in the destination bit.

Forwarders uses the same retry logic and failure handling as the underlying [Snowbridge failure model](/docs/api-reference/snowbridge/concepts/failure-model/index.md). Snowplow handles event forwarding failures differently depending on the type:

- **Invalid data failures**: Snowplow treats events that fail transformation or violate destination API requirements as unrecoverable. Event forwarding creates [event forwarding error failed events](https://iglucentral.com/?q=event_forwarding_error) and logs them in your cloud storage bucket without retry.
- **Transformation failures**: Snowplow treats JavaScript transformation errors as invalid data and logs them to your cloud storage bucket without retry.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- **Transformation failures**: Snowplow treats JavaScript transformation errors as invalid data and logs them to your cloud storage bucket without retry.
- **Transformation failures**: Where the mapping transformation encounters an error, event forwarding creates [event forwarding error failed events](https://iglucentral.com/?q=event_forwarding_error) and logs them in your cloud storage bucket without retry.

Possibly add something like: "There are safeguards against deploying with such errors, but for example custom transformation may sometimes hit errors at runtime."


- **Invalid data failures**: Snowplow treats events that fail transformation or violate destination API requirements as unrecoverable. Event forwarding creates [event forwarding error failed events](https://iglucentral.com/?q=event_forwarding_error) and logs them in your cloud storage bucket without retry.
- **Transformation failures**: Snowplow treats JavaScript transformation errors as invalid data and logs them to your cloud storage bucket without retry.
- **Destination failures**: when API requests fail (e.g., HTTP 4xx/5xx responses), Snowplow retries based on the destination-specific retry policy. See the list of [available destinations](/docs/destinations/forwarding-events/integrations/index.md) for destination-specific details.
Copy link
Contributor

Choose a reason for hiding this comment

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

Actually, this one is good! We could specify that they're either:

  • Setup (in which case the customer gets alerted to fix - eg. wrong API key)
  • unretryable (in which case we get a bad row, like transformation errors - eg. missing required data)
  • retryable (in which case they get retried until they succeed)

This page is an overview of how to monitor event forwarder performance and diagnose delivery issues. Snowplow provides both summary metrics and detailed failed event logs, to help you understand failure patterns and troubleshoot specific problems.

## Failure types and retry logic

Copy link
Contributor

Choose a reason for hiding this comment

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

If suggestions below aren't clean, we could consider reversing the layout.

"Failures can result in one of n behaviours":

  • retries {detail}
  • Event Forwarding failed events {this happens for transformation errors (eg runtime error), and unrecoverable API errors (eg. missing required data)
  • Alerts to fix a problem {this happens for API errors that indicate an incorrect setup, eg. incorrect api key or permissions}
  • Oversized failed events {as below}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla:yes do not merge Flag to denote a Issue or PR which should not yet be merged (usually pending a release)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants