# Replace an analytics or logging vendor, call site by call site

A vendor swap done call site by call site, with event parity proven rather than assumed.

Category: Vendor and third-party migrations
Source: https://letsship.ai/use-cases/replace-an-analytics-or-logging-vendor
Published: 2026-08-25

## Goal

Migrate call sites from one analytics or logging vendor to another, preserving event parity.

## Acceptance criteria

- Each migrated call site emits an equivalent event to the new vendor
- A parity test compares old and new payloads
- Both run side by side until parity is confirmed
- The old integration is removed once parity holds

## What lands as proof

A parity comparison between the two emitters, which stops a dashboard quietly losing a metric.

## Prompt

Copy this to an agent to open the ticket:

```text
Create a Linear issue in my team and assign it to the SHIP agent.

Title: Move from {old} to {new}

Description: Migrate call sites from one analytics or logging vendor to another, preserving event parity.

Acceptance criteria:
- Each migrated call site emits an equivalent event to the new vendor
- A parity test compares old and new payloads
- Both run side by side until parity is confirmed
- The old integration is removed once parity holds

Before you create the issue, list the events this repository currently emits and replace {old} and {new}.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: migrate call sites from one analytics or logging vendor to another, preserving event parity. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.

### How do I know the work is done?

The pull request carries the evidence, not only the diff. Here that means event parity test between the old and the new emitter, so a reviewer can confirm the result without reproducing the work locally.

### How much oversight does this need?

The run stops once the plan is written. Somebody reads the approach and approves it before any code exists, which is the cheapest moment to redirect the work.
