> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trace0hq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transactions

> View and explore distributed traces across your services.

In Trace0, a `Transaction` represents a single end-to-end trace across all services involved in handling a request — such as an inbound HTTP request, a message consumed from a queue, etc.

You can view the list of transactions for each of your services in the [Transactions](https://app.trace0hq.com/transactions) section:

<img className="block dark:hidden" alt="Transactions Light" src="https://mintcdn.com/trace0/hPor2uLPZutifyKW/images/transactions-light.png?fit=max&auto=format&n=hPor2uLPZutifyKW&q=85&s=432b7b6db5542d8f59acfb870556c844" width="2872" height="1038" data-path="images/transactions-light.png" />

<img className="hidden dark:block" alt="Transactions Light" src="https://mintcdn.com/trace0/RqMrQ3CsdCDsZ5c3/images/transactions-dark.png?fit=max&auto=format&n=RqMrQ3CsdCDsZ5c3&q=85&s=8dc8c31dd44eb25f02275ed9bb6fd4f8" width="2874" height="1082" data-path="images/transactions-dark.png" />

### Filtering and Searching

You can filter transactions by service, time period, or using the **Errors only** toggle.

You can also search transactions by free text, returning any transactions where the search term appears in the transaction's log entries:

<img className="block dark:hidden" alt="Transactions Light" src="https://mintcdn.com/trace0/hPor2uLPZutifyKW/images/transaction-search-light.png?fit=max&auto=format&n=hPor2uLPZutifyKW&q=85&s=8a1555aaa9e4b19df3ab5e1e660e3a45" width="2876" height="1058" data-path="images/transaction-search-light.png" />

<img className="hidden dark:block" alt="Transactions Light" src="https://mintcdn.com/trace0/Hr88Kh10wPzv_tvC/images/transaction-search-dark.png?fit=max&auto=format&n=Hr88Kh10wPzv_tvC&q=85&s=48f2b2ab4cddae477e5c6012bcc11a09" width="2858" height="1046" data-path="images/transaction-search-dark.png" />

Additional filters are available by clicking the Filter icon in the top-right corner of the Transactions screen. This opens a pop-up modal containing all available filters:

<img className="block dark:hidden" alt="Transactions More Filters Light" src="https://mintcdn.com/trace0/GuxKBWfqzJZ8I6sz/images/transaction-more-filters-light.png?fit=max&auto=format&n=GuxKBWfqzJZ8I6sz&q=85&s=b671f38635515ce55cd86c0d78182a16" width="1436" height="576" data-path="images/transaction-more-filters-light.png" />

<img className="hidden dark:block" alt="Transactions More Filters Light" src="https://mintcdn.com/trace0/hMmXXvlV5NrittlM/images/transaction-more-filters-dark.png?fit=max&auto=format&n=hMmXXvlV5NrittlM&q=85&s=94c7a6b3f9d5d52515295e3e5e992543" width="1408" height="560" data-path="images/transaction-more-filters-dark.png" />

The current additional filters are:

| Filter             | Description                                                                                     |
| ------------------ | ----------------------------------------------------------------------------------------------- |
| `Latency`          | Set a minimum or maximum duration in milliseconds or seconds to focus on slow or fast requests. |
| `HTTP Status Code` | Filter to all 4xx errors, all 5xx errors, or a specific code like 404 or 503.                   |
| `Endpoint`         | Filter by the endpoint that handled the request.                                                |
| `Log Search`       | Show only transactions where any of its log entries contain the search term.                    |

Filters are combined using **AND** logic, so only transactions matching all applied filters are returned, including any already set in the Transactions screen, such as `Service` or `Time Period`.

### Transaction Detail

To view more details for a single transaction, click on it to see a full breakdown — including all spans, logs, and time taken across each component and service:

<img className="block dark:hidden" alt="Transaction Detail Flow Light" src="https://mintcdn.com/trace0/Mz1luCCKmPAGpI4r/images/transaction-detail-flow-light.png?fit=max&auto=format&n=Mz1luCCKmPAGpI4r&q=85&s=d5671d609d64bc07bd0cd60b7eb86d75" width="2880" height="1368" data-path="images/transaction-detail-flow-light.png" />

<img className="hidden dark:block" alt="Transaction Detail Flow Light" src="https://mintcdn.com/trace0/Mz1luCCKmPAGpI4r/images/transaction-detail-flow-dark.png?fit=max&auto=format&n=Mz1luCCKmPAGpI4r&q=85&s=581ee975153f221cf5ad7b8422b7c521" width="2878" height="1368" data-path="images/transaction-detail-flow-dark.png" />

<p />

<img className="block dark:hidden" alt="Transaction Detail Component Breakdown Light" src="https://mintcdn.com/trace0/nmvOwrxijCNPGeqX/images/transaction-detail-breakdown-light.png?fit=max&auto=format&n=nmvOwrxijCNPGeqX&q=85&s=8bf3af412fb44e0ff8a1f5517afa6849" width="2872" height="1048" data-path="images/transaction-detail-breakdown-light.png" />

<img className="hidden dark:block" alt="Transaction Detail Component Breakdown Light" src="https://mintcdn.com/trace0/Mz1luCCKmPAGpI4r/images/transaction-detail-breakdown-dark.png?fit=max&auto=format&n=Mz1luCCKmPAGpI4r&q=85&s=0424b06392f79d07c088412ee796f56e" width="2878" height="1042" data-path="images/transaction-detail-breakdown-dark.png" />

<p />

<img className="block dark:hidden" alt="Transaction Detail Service Breakdown Light" src="https://mintcdn.com/trace0/FWGQcLdD1GVsSikz/images/transaction-detail-service-breakdown-light.png?fit=max&auto=format&n=FWGQcLdD1GVsSikz&q=85&s=c41351c6d423441794295c9aa5801e5a" width="2870" height="1048" data-path="images/transaction-detail-service-breakdown-light.png" />

<img className="hidden dark:block" alt="Transaction Detail Service Breakdown Light" src="https://mintcdn.com/trace0/ZRUh06BISYi_Bk7B/images/transaction-detail-service-breakdown-dark.png?fit=max&auto=format&n=ZRUh06BISYi_Bk7B&q=85&s=9e8ef6d5d7313e6967466e5d2608439d" width="2874" height="1052" data-path="images/transaction-detail-service-breakdown-dark.png" />

<p />

<img className="block dark:hidden" alt="Transaction Detail Runtime Info Light" src="https://mintcdn.com/trace0/Qw5KYU6Mafs3lJXK/images/transaction-detail-runtime-info-light.png?fit=max&auto=format&n=Qw5KYU6Mafs3lJXK&q=85&s=5118f40197d1892808ee25ebc28e1c42" width="2864" height="1428" data-path="images/transaction-detail-runtime-info-light.png" />

<img className="hidden dark:block" alt="Transaction Detail Runtime Info Light" src="https://mintcdn.com/trace0/UjVwWaL6yQCGbz0w/images/transaction-detail-runtime-info-dark.png?fit=max&auto=format&n=UjVwWaL6yQCGbz0w&q=85&s=cd2f17677990a9df060d8f6618c0ca01" width="2862" height="1428" data-path="images/transaction-detail-runtime-info-dark.png" />

### Errors

For transactions that fail, the transaction will appear as an error in Trace0, with the full error details and stack trace included:

<img className="block dark:hidden" alt="Transactions Light" src="https://mintcdn.com/trace0/HwSki7Tt30HXhy-Q/images/transaction-error-light.png?fit=max&auto=format&n=HwSki7Tt30HXhy-Q&q=85&s=8058e95b2e2565665d345909e6248755" width="2876" height="1246" data-path="images/transaction-error-light.png" />

<img className="hidden dark:block" alt="Transactions Light" src="https://mintcdn.com/trace0/HwSki7Tt30HXhy-Q/images/transaction-error-dark.png?fit=max&auto=format&n=HwSki7Tt30HXhy-Q&q=85&s=3bab34bbb7c5740dc9f9bfb945bb4636" width="2852" height="1244" data-path="images/transaction-error-dark.png" />

### Tags

Tags let you attach important business context to a transaction, such as a customer ID, order ID, tenant ID, etc.

Tags use the `trace0.tag.*` namespace and can be added through logs or span attributes.

**1. Logs**

Tags can be included in standard log messages:

```java theme={null}
log.info("Processing order trace0.tag.customer.id=12345");
```

Or as fields when using structured logging:

```json theme={null}
{
  "message":"Processing order",
  "trace0.tag.customer.id":"12345"
}
```

​**2. Span attributes**

Tags can also be added directly as OpenTelemetry span attributes:

```java theme={null}
span.setAttribute("trace0.tag.customer.id", "12345");
```

Trace0 extracts these values and displays them as Tags on the corresponding transaction.

<img className="block dark:hidden" alt="Transaction Tags Light" src="https://mintcdn.com/trace0/k4iKF3hacuwsSLr5/images/transaction-tags-light.png?fit=max&auto=format&n=k4iKF3hacuwsSLr5&q=85&s=ca45b1868e554fc3bb5529abcb93a9af" width="2864" height="1428" data-path="images/transaction-tags-light.png" />

<img className="hidden dark:block" alt="Transaction Tags Light" src="https://mintcdn.com/trace0/k4iKF3hacuwsSLr5/images/transaction-tags-dark.png?fit=max&auto=format&n=k4iKF3hacuwsSLr5&q=85&s=132b4b35cd1f25f4ec40a84190a7b1c5" width="2862" height="1428" data-path="images/transaction-tags-dark.png" />

### Asynchronous Transactions

Asynchronous transactions are transactions triggered independently of the transaction that originally initiated them — for example, a Lambda function reading messages from an SQS queue, or an ECS task consuming messages from a Kafka topic.

Unlike a typical synchronous call (e.g. an HTTP request), these transactions aren't a direct extension of the transaction that triggered them. This creates two challenges for standard trace visualization:

1. **Duration doesn't roll up naturally.** It wouldn't make sense to include the duration of a downstream transaction (e.g. an SQS consumer) as part of the duration of the transaction that produced the message (e.g. the producer Lambda) — the two run independently, often at completely different times.
2. **A single transaction can have multiple sources.** A consumer might process a batch of several messages in one invocation, and those messages could have been sent by different upstream transactions.

For these reasons, asynchronous transactions aren't shown in the Flow section of the triggering transaction the way a normal synchronous call would be. Instead, they're linked via two dedicated sections on the Transaction screen:

* `Consumed By` — the downstream transaction(s) that consumed the message(s) this transaction sent.
* `Produced By` — the upstream transaction(s) that sent the message(s) this transaction consumed.

<img className="block dark:hidden" alt="Consumed By Transactions Section Light" src="https://mintcdn.com/trace0/Ml6Ukxgeu0wz4R_a/images/consumed-by-transactions-section-light.png?fit=max&auto=format&n=Ml6Ukxgeu0wz4R_a&q=85&s=e75c6e0c6affddf840f5894ced4d9f96" width="2866" height="1094" data-path="images/consumed-by-transactions-section-light.png" />

<img className="hidden dark:block" alt="Consumed By Transactions Section Light" src="https://mintcdn.com/trace0/Ml6Ukxgeu0wz4R_a/images/consumed-by-transactions-section-dark.png?fit=max&auto=format&n=Ml6Ukxgeu0wz4R_a&q=85&s=9588830688a5da010b009a5cc3d6b5ad" width="2858" height="1098" data-path="images/consumed-by-transactions-section-dark.png" />

<p />

<img className="block dark:hidden" alt="Produced By Transactions Section Light" src="https://mintcdn.com/trace0/iyEhOIWOzSr5oPEw/images/produced-by-transactions-section-light.png?fit=max&auto=format&n=iyEhOIWOzSr5oPEw&q=85&s=b6be1be3114d305939e585e7401c73da" width="2870" height="1164" data-path="images/produced-by-transactions-section-light.png" />

<img className="hidden dark:block" alt="Produced By Transactions Section Light" src="https://mintcdn.com/trace0/iyEhOIWOzSr5oPEw/images/produced-by-transactions-section-dark.png?fit=max&auto=format&n=iyEhOIWOzSr5oPEw&q=85&s=5e4454d6a2f27d268fa9f6fd613bc21e" width="2866" height="1118" data-path="images/produced-by-transactions-section-dark.png" />

Each entry includes the transaction summary and a link to the detailed view for that transaction, so you can navigate between them directly. This makes it easy to answer questions such as:

* Did any of my downstream async services fail?
* Which transaction sent the message that triggered this one?
