# Overview The sections below highlight key functional areas the exhibit the same behaviors in both the Sandbox and Live environments. ## Object propagation The Upvest system is event driven therefore object status propagation is never instant (i.e when you create an account or account group). Kindly take note that aspects like object status propagation are not instant in either environment. Propagation speed may differ between Sandbox and Live, so integrations should not assume instant availability. In both environments, clients should [implement webhooks](/products/tol/getting_started/implementing_webhooks) to easily and efficiently receive event updates. Webhooks allow your software to automatically receive event data without the need to poll for updates. ## Asynchronous Event Delivery The Upvest API is asynchronous, therefore operations of different event types can happen independently and may complete at different times. For example, EXECUTION events and ORDER events can occur in any order. This means that even if Event A logically happens before Event B, the webhook notifications might arrive in reverse order due to network delays, system load, or processing differences. For example, in a trading system: An `EXECUTION.FILLED` event (trade completed) might logically happen first. But the `ORDER.FILLED` event (order status updated) webhook could arrive at your system first. As best practice, your design should implement payload-based logic using: - state fields to determine current status - timestamps to understand chronological order - identifiers to match related events This approach ensures your system works correctly regardless of webhook delivery sequence. ## Webhooks Webhooks behave the same across both environments where events may be batched together and delivered in no guaranteed order for different webhook types. If your system doesn’t acknowledge them (HTTP 200), we’ll retry with exponential backoff. For that reason, it’s important to make your webhook handler able to repeated message attempts and maintain an event log so you don’t process the same event twice. In Sandbox, webhook subscriptions that continuously fail for 30 days may be automatically removed, while in Live subscriptions remain active.