Features
Sync observability dashboard
An embedded Laravel sync observability dashboard that gives you a unified production view of sync activity across all clients:
- Push and pull history with timestamps and client IDs
- Request outcomes, mutation counts, snapshots, and durations
- Top models and clients by sync volume
- Conflict and failure rates
- Five-minute health buckets across the last 24 hours
The dashboard is accessible at a configurable route prefix (default: /tether/dashboard) and is protected by standard Laravel middleware.
Request and mutation inspection
Every captured sync request is logged with configurable payload redaction - you can inspect:
- Redacted incoming mutation payloads
- Redacted raw request and response payloads
- Server-side resolution outcome (applied / rejected / conflict)
- Server state before and after mutation processing
- Field-level diff views between captured payloads and stored state
- Per-request execution timing and outcome summary
- Paginated mutation lists for large request batches
This gives you a practical audit trail of what each client pushed, how the server processed it, and what changed.
Conflict management interface
The conflicts view surfaces every detected data conflict:
- Client payload and server state at the time of conflict
- Rejection reason and request context
- Historical conflict patterns per model and per client
Conflicts are recorded whether the default last-write-wins resolver or a custom resolver is used.
Failure and error tracking
Failed sync operations are captured with full context:
- Validation failures with field-level detail
- Rejected mutation reasons
- Request and mutation context for failed syncs
Failure patterns are grouped and surfaced so you can identify systematic issues (e.g. a model that consistently fails for a specific client).
Replay and debug tools
tether/pro-server allows you to:
- Preview each captured push mutation against the current database state.
- Apply a cloned live replay only when enabled in config and explicitly confirmed by the dashboard request.
- Audit the replay relationship between the original captured request and any cloned replay request.
Live replay clones mutation IDs before processing, so the original captured request remains intact and the cloned request can be inspected afterwards.
Sync telemetry
Aggregated performance metrics available in the dashboard and via a metrics API endpoint:
| Metric | Description |
|---|---|
| Throughput | Total requests and mutations captured |
| Latency | Average request duration |
| Conflict rate | Percentage of captured requests with conflicts |
| Failure rate | Percentage of captured requests that failed |
| Health strip | Five-minute status buckets across the last 24h |
| Top models | Highest-volume synced model names |
| Top clients | Highest-volume client IDs |
The metrics API is available at GET /tether/dashboard/metrics.
Overview
Learn how tether/pro-server adds a production Laravel dashboard for sync history, request inspection, conflict review, replay, and telemetry.
Service Container
Inject and extend Tether services through Laravel's container, including sync engines, registries, HTTP clients, snapshot applicators, and queues.