ORD-2026-000123 e recebe todos os fatos desse fluxo, de todos os producers, em uma só resposta.
Um fato armazenado nunca muda. O System Facts registra e correlaciona. Ele não edita o histórico.
Conceitos
Um tipo de referência com
correlation: exact liga o seu fato a todo fato que carrega a mesma referência. Quando um fato liga dois fluxos, eles se unem em um só. O id do fluxo absorvido continua resolvendo para o fluxo que sobrevive.
Um tipo de referência registrado com searchable: true pode listar todo fato que o carrega.
Integre em quatro passos
1
Registre os tipos de referência
Registre cada tipo de identificador que seus fatos carregam com
PUT /v1/reference-types/{type}, como acme.order_id e acme.payment_id. Faça isso no pipeline de deploy, antes de qualquer contrato usar o tipo.2
Registre uma versão de contrato
Registre uma versão de cada tipo de fato com
PUT /v1/contracts/{producer}/{namespace}/{type}/{schemaVersion}. Faça isso no pipeline de deploy, antes do rollout do producer. O System Facts só aceita fatos depois que o registro tem sucesso.3
Envie fatos
Envie um envelope por momento de negócio com Um primeiro envio responde
POST /v1/facts. Use a credencial de serviço do producer para o tenant.201.4
Leia os fluxos
Leia um fluxo pelo id com
GET /v1/flows/{flowAggregationId}. Encontre o único fluxo de uma referência com GET /v1/flows/by-reference. Liste todo fato que carrega uma referência searchable com GET /v1/flows.Autenticação e permissões
Toda requisição, exceto os health probes públicos, envia
Authorization: Bearer <token>. Fatos e fluxos pertencem ao tenant do token. Os catálogos de tipos de referência e de contratos são compartilhados por todos os tenants do deploy.
Uma permissão ausente responde
403 SF-0014. Um token ausente ou inválido responde 401 SF-0013.
Convenções
- Tenant. O serviço sempre toma o tenant do token. Ele nunca lê um tenant de um caminho, de um parâmetro de consulta ou de um corpo.
- Escritas idempotentes. Um primeiro registro ou envio responde
201. A mesma requisição de novo responde200e não muda nada. O envio de um fato acrescentaduplicate: true. - Imutabilidade. Uma versão de contrato, um tipo de referência e um fato nunca mudam. Conteúdo diferente sob a mesma identidade responde
409. Um tipo de referência pode ganhar ummaskde exibição uma vez. - Paginação. Uma lista responde uma página e um
nextCursor. Envie-o de volta como o parâmetro de cursor da página que você quer. Trate-o como opaco. Pare quando ele for omitido. - Timestamps. RFC 3339 em UTC, como
2026-10-19T14:32:10Z. - Tamanho. Um envelope de fato tem no máximo 256 KiB por padrão. Um envelope maior responde
413SF-0012. - Nomes. O primeiro segmento separado por ponto de todo nome de namespace e de tipo de referência deve ser um dos prefixos reservados do deploy. O padrão é
lerian. Estas páginas usamacme.
Sensibilidade e valores protegidos
A
sensitivity de um tipo de referência decide como as leituras mostram seus valores. Um contrato pode marcar campos do payload da mesma forma com x-sensitivity.
Com
mask: document, um valor masked mostra ***.456.789-** para 11 dígitos e **.345.678/0001-** para 14 dígitos. O System Facts recusa qualquer outra quantidade de dígitos no envio.
Toda classe correlaciona exatamente como none, porque a comparação parte do valor em texto claro. Todo digest armazenado tem chave. Ele nunca é um hash simples.
Um valor protegido volta com protected: true, e os campos protegidos do payload aparecem em protectedFields. Para encontrar um fluxo por uma referência protegida, envie sempre o valor em texto claro. O System Facts calcula o digest dele e compara com o digest armazenado.
Erros
Todo erro é
application/problem+json (RFC 9457) com um code estável.
Lista de erros
Consulte cada código, quando o serviço o responde e se vale tentar de novo.
Registrar uma versão de contrato
Comece pela operação que todo producer executa primeiro.

