# What Is Modality?

Modality is a specialized database for storing and querying detailed information about the run-time activity of cyber-physical systems.

Modality works with all kinds of systems, from individual robots to swarms of communicating drones. To enable this, Modality takes in execution traces from all the varied components and technology layers that make up your system(s). It translates these traces into causally correlated timelines of events and interactions. This allows you to dive into any detail of any part of your system's behavior at any time, and to see how that behavior affects other parts of your system over time, between versions, or across deployments.

# Modality at work

Modality integrates with a variety of platform tracing systems. It does this via the Modality Reflector, which hosts various ingest plugins and translates the events to native Modality format. The Auxon SDK can be used to develop new ingest plugins.

Multiple instances of the Modality Reflector can be deployed as needed. In addition to hosting ingest plugins, they can also route events and annotate them as they flow through. This provides a flexible way to enrich trace data with operational metadata throughout the collection pipeline.

Users can then use the Modality client application to view collected event logs, to issue component-level and system-level queries, and to perform automated analyses.

# How is Modality different?

Unlike other event and trace storage systems, Modality is able to understand the relationships between the components of your system.

With typical event and trace storage systems, you just get standalone linear logs, and the job of relating them to each other falls to you. This nearly always means staring at logs on your screen and trying to figure it out. Modality can automatically interpret recorded trace information to understand the communications between the components, and thus the relationships between the logs.

This focus on system-wide causality (determining event ordering between components) runs throughout Modality and its extended applications. The SpeQTr query language and the automatic analysis features all build upon this basis.

There are distributed tracing systems that provide some of this capability, but they are very focused on event-driven workflows that are typical of IT systems. Modality does work well with this "span"-based data, but it also natively supports system architectures more commonly found in autonomous and cyber-physical systems.

# Applications built on Modality

Modality can be used very effectively as a standalone trace database. But like most databases, it is also a good platform for building higher level applications. Auxon offers sophisticated system verification & validation applications that leverage Modality: Conform and Deviant.

# Conform

Auxon's Conform application leverages the traces stored in Modality to check that your system behaved according to specifications, written in SpeQTr (opens new window).

# Deviant

Auxon's Deviant application coordinates experiments to stress systems and change their behavior or operating conditions to look for weaknesses or latent risks. It leverages the traces stored in Modality to understand how different stresses cause changes in system behavior.