Design a bidirectional data synchronization platform and an internal dashboard.
Scenario
Your company integrates with multiple cloud providers (e.g., AWS/Azure/GCP-like). Each provider can have planned maintenance windows and unplanned incidents/outages. After a provider experiences or announces maintenance/outage, the status should be reflected on your own dashboard. Additionally, certain configuration/status data must be kept in sync both directions between:
-
Provider side
(provider APIs/events)
-
Your side
(your internal system-of-record)
Requirements
-
Bidirectional sync
of selected objects (you define what objects make sense, e.g., “account config”, “connection status”, “maintenance events”).
-
Ingestion of provider events
about maintenance/outage and updates to your dashboard.
-
Handle
expected provider maintenance/outage
(planned) and
unexpected outages
.
-
Should work across multiple providers/tenants.
-
Reliability: retries, idempotency, ordering/duplication issues.
-
Define how you detect changes on both sides (polling vs webhooks vs change logs).
-
Show how the dashboard queries/gets the latest state.
Deliverables
-
High-level architecture (components and responsibilities)
-
Data model for synced entities and outage/maintenance events
-
Sync protocol: conflict resolution strategy and consistency guarantees
-
Failure handling (provider API downtime, partial failures, replay)
-
Key metrics/alerts and operational considerations
-
Brief note on security (auth, secrets, tenant isolation)