---
title: Explanation
description: Why rtb-telemetry is shaped the way it is — consent, identity, redaction, line integrity, and what it deliberately does not do.
---
# Explanation
Why the crate behaves the way it does. If you are looking for exact
defaults and signatures, those are in [Reference](../reference/index.md);
if you are trying to get something done, start with
[How-to](../how-to/index.md).
| [Two-level opt-in](two-level-opt-in.md) | Why nothing is collected until two separate decisions have both been made. |
| [Machine identity](machine-identity.md) | Why events carry a salted hash, what the salt is for, and when identity is not stable. |
| [Where redaction applies](redaction-boundary.md) | Why `args` and `err_msg` are scrubbed automatically and `attrs` are not. |
| [Why FileSink holds a lock](file-sink-line-integrity.md) | Why appending JSON Lines needs a mutex even though the file is opened in append mode. |
| [What this does not do](what-this-does-not-do.md) | The things people ask for that this crate deliberately does not provide. |