KOSH

Entity Lifecycle

Translate
Every entity, whether it be a creature, a machine or matter shares a common set of lifecycle states and transitions. In addition, certain entity types may have their own extra states and transitions.
  1. Entity construction

    An entity is created by taking the data presented in a blueprint and using it to create an instance of the entity as described by the entity model. The entity is registered and then placed in a status determined by the nature of the creation request.

  2. Entity sleeping

    An entity is said to be asleep when it is not part of an active relationship. The distinction between asleep and awake is entirely dependent upon the implementation of the cybersea. A sea administrator can chose to have all objects awake at all time. The purpose of the distinction is to allow for performance enhancement at a low level, hidden from the inhabitants of the cybersea. Entities not in an active relationship may be swapped out or deleted from quickstart structures. Entities in an active relationship may be brought into memory, cached or subject to other processes.

  3. Entity waking

    An entity is said to be awake if it is part of an active relationship. See entity sleeping, for details.

  4. Entity working

    An entity is said to be working if it is part of an active relationship with at least one task in the task queue. Again, this is a low level implementation detail.

  5. Entity freezing

    An entity is said to be frozen when it has been put into such a state that it cannot be woken. Entities are normally frozen when they are to be transported between cyberseas, or when they are to be passed between a cybersea and another type of computer system, or vice versa, or when they are to be placed in storage. Consequently, entities can only enter or leave a cybersea in a frozen state. This state allows for immigration to inspect them in a static mode before they are allowed to participate in a cybersea. Frozen entites are placed into a special container entity called a freezer, along with any supporting entities. A freezer allows for manifesting, encrypting, storage and delivery. At a simple level, freezing involves flattening the data block of an entity and prefixing it with identification information.

  6. Entity thawing

    A frozen entity is thawed to a sleeping state. This involves taking a flattened bit stream and reconstituting and reattaching it to the data structures and blueprint that define it.

  7. Entity destruction

    An entity is destroyed when the entity manager removes its entry for that entity. That is the single action required to delete an entity. In addition, the sea can be set to overwrite the data block for the entity, remove all references to the entity in all relationships and/or archive the action. This all depends on the nature of the delete desired, i.e. logical, physical, recoverable etc.