November 13, 2026

Product

Data is Transparency, and Transparency Builds Trust

Kristine Kunapuli picture
Kristine Kunapuli
Software Engineer – Tech Lead

Every credential a Defakto server issues leaves a record behind. Where does that record go, and what can you do with it?

Workload identity works best when nobody has to think about it. A workload asks for a credential, gets one, and gets on with its job. That quiet is great for operations and less great when someone asks what your identity system has been up to. Which workloads got credentials last week? Is anything unusual happening right now? Can we show an auditor what happened two years ago? Can we get all of this into our own tools?

At Defakto, we think you should be able to see everything your identity infrastructure does. When something meaningful happens in a Defakto deployment, like a credential being issued, an agent checking in, or a configuration change, Defakto records it as an event.

Scroll to follow a single event from the moment it’s created to every place it ends up, including event forwarding, which is now available.

01 · your environment

It starts with a credential

A workload asks its agent for an identity, and the Defakto server running in your environment issues an SVID. The server also records an svid_issued event that says which workload got the credential, when, and from which deployment.

The server puts the event in a buffer in memory. Issuing a credential never waits on the network, so recording the event doesn’t slow your workloads down. They have places to be.

02 · control plane

Sent to the control plane

Every few seconds, the server sends its buffered events to the Defakto control plane in one batch over mutual TLS (mTLS). The control plane collects events from every Defakto server in your organization, across all of your trust domain deployments.

How does the control plane know whose events they are? The event itself doesn’t say. The control plane reads the organization and deployment from the server’s SPIFFE ID on the mTLS connection, so a server can only write events into its own organization.

03 · durable storage

Made durable before anyone says “got it”

Before it replies to the server, the control plane writes each event to an encrypted, durable buffer in Kinesis. The server keeps its own copy until that reply arrives, and if anything fails along the way, the server sends the event again.

Everything after this point reads from that buffer.

04 · fan out

One event, three uses

Three independent readers pick the event up from the buffer, and each one answers a different question about your system. None of them waits on the others, so a slow forwarding destination doesn’t delay what you see in the console.

05 · archive

What happened?

The archive writes every event to S3. We keep important events, like audit logs, for seven years, which is longer than most of the workloads they describe will be around. We also copy security events to a separate, locked backup where nobody can change or delete them.

The archive is the source of truth. If we ever need to rebuild another view of your data, we rebuild it from here.

06 · search

What’s happening right now?

The search pipeline turns the event into documents in OpenSearch, which keeps each organization’s data separate. The event is searchable within seconds of the credential being issued, and it shows up in the issuance chart for its trust domain.

Trust Domains/acme.example/Issuance
Workload Credentials (SPIFFE SVIDs)
Issued SVIDs over the last 24 hours
24 hours
Credentials issued for one trust domain, with the interval holding this post’s event highlighted. Example data.
07 · console

On your screen

Open a trust domain’s audit log in the Defakto console, and the event is at the top, next to other credentials, agent attestations, federation checks and API requests. The credential counts and charts on each page come from the same search index.

The control plane filters every query to your organization and to what your account can see, so the same data can serve everyone on your team.

Trust Domains/acme.example/Audit Logs
TimeSourceEvent typeSummary
Nov 11, 4:41 AMTrust Domain ServerWorkload credential issuedX509 issued for spiffe://acme.example/payments/api
Nov 11, 4:41 AMTrust Domain ServerWorkload credential issuedJWT issued for spiffe://acme.example/checkout/web
Nov 11, 4:40 AMAgentAgent attestationAttestation recorded for agent “k8s-node-07”
Nov 11, 4:40 AMTrust Domain ServerFederation link polledFederation between acme.example and partner.example
Nov 11, 4:39 AMControl PlaneControl plane API requestListRealms by ci-deployer
The audit log in the Defakto console, with this post’s event at the top. Example data.
08 · forwarding

Can you keep your own copy?

We’d like you to trust us, but we’d also like you to verify. Forwarding sends your credential issuance events, as they happen, to a destination you choose, such as a security vendor that ingests identity signals, your SIEM, or a service you run that stores them in your own S3 bucket or OpenSearch cluster.

Each event is a Security Event Token, the standard format from the OpenID Shared Signals Framework. Defakto signs every delivery with a key unique to your organization, and your destination checks the signature against our public keys, so there’s no shared secret to store or rotate.

Each subscription has its own queue, so one slow destination doesn’t hold up another.

Set up event forwarding in the Defakto docs.

Three answers from one record

One svid_issued event, recorded as a side effect of a workload getting its identity, answers three different questions.

ArchiveWhat happened?Kept for up to seven years, for audits and investigations.
SearchWhat’s happening now?Searchable within seconds, scoped to what each person on your team can see.
ForwardingWhere else do I need it?Signed and delivered to the tools you already use, so you have your own copy.

We built the event pipeline so you can check what your identity infrastructure is doing whenever you need to, whether that’s in our console, in years of archived history, or in your own systems.