# Liveness and Safety

In discussing the correctness of a distributed system, two properties are usually referred to as safety and liveness.&#x20;

A safety property of a distributed system means that nothing “bad” ever happens during the execution of a concurrent program. This means the system never enters a state that is considered incorrect by the protocol that it follows.&#x20;

Liveness, defined informally, is a property that asserts that “good” things eventually happen during the system execution. Meaning, that the system continues operating according to its protocol.&#x20;

The liveness analysis of Orbis will operate under the assumption of a partially synchronous network, which guarantees that the messages are delivered within some finite time-bound. But in the full asynchronous model, liveness cannot be guaranteed.&#x20;

We plan for Orbis to be a system that is safe throughout its entire execution, even in a fully asynchronous model.&#x20;

If congestion exists on L1 (Cardano), Orbis will not be able to push zk-SNARK updates to the verifier smart contract, but it will be able to periodically forge new blocks and eventually push an update to L1 after the congestion is no longer present.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.orbisprotocol.com/orbis/design-considerations/liveness-and-safety.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
