> For the complete documentation index, see [llms.txt](https://docs.skail.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skail.dev/aprender/arquitetura/visao-geral-dos-componentes.md).

# Visão geral dos componentes

Quatro peças, dois lados. Na sua infraestrutura: o SDK e o runtime, dentro da sua aplicação. No skail: a plataforma, que atende a API HTTP, e o portal. Esta página diz o que cada peça faz e onde roda.

## Do seu lado

### SDK

O que você adiciona ao projeto: o pacote `Skail.Platform.Runtime`. Ele traz os atributos `[SkailFunction]` e `[SkailCommand]`, o tipo `SkailTask`, as primitivas `SkailTask.*`, o `SkailContext`, e um analyzer Roslyn que cobra as regras de assinatura na compilação. O SDK não roda nada por si: é a forma de escrever código que o runtime sabe executar. Ver [Modelo de programação](/aprender/fundamentos/modelo-de-programacao.md).

### Runtime

Vem no mesmo pacote e roda dentro do processo da sua aplicação, registrado por `builder.UseSkail()`. Faz quatro coisas: descobre as classes e métodos marcados (por isso `[assembly: VisibleToSkailPlatform]`); busca trabalho no skail; executa functions e commands, registrando cada passo concluído e pulando, na retomada, o que já foi feito (o replay); e exporta telemetria. Roda onde a sua aplicação roda: Worker Service, container, Kubernetes, VM. Escala com réplicas da sua aplicação. Ver [Runtime](/aprender/arquitetura/runtime.md).

Do seu lado não entra nada novo para operar: seu banco continua sendo seu banco, acessado pelos commands, e o runtime não precisa de banco, disco nem fila próprios.

## Do lado do skail

### O skail

A plataforma, operada pelo skail. Recebe as chamadas da API HTTP (trigger e fire), entrega o trabalho à aplicação que publica o workload, mantém cada execução viva entre um passo e outro, agenda as esperas por tempo, entrega os eventos externos às execuções que os aguardam e reentrega o trabalho quando algo falha. Você não instala, escala nem monitora nada dela. Ver [O que o skail faz pela sua execução](/aprender/arquitetura/o-que-o-skail-faz-pela-sua-execucao.md).

Argumentos e resultados de commands fazem parte da execução e aparecem na linha do tempo do Monitor; por isso, passe ids e valores de decisão, não cadastros inteiros (ver [Segurança](/aprender/garantias/seguranca.md)).

### Portal

Onde você cria projetos, environments e workloads, obtém chave, namespace e URL base, acompanha as execuções no Monitor e exporta uma captura para o Time Travel Debug. Ver [Portal](/aprender/arquitetura/portal.md).

## Como se encaixam

```
seu controller / webhook / job         ──POST /trigger, /api/v1/fire──►        skail (API HTTP)
                                                                               │
sua aplicação                          ◄──── execuções, passos, esperas ────►  skail: entrega o trabalho, agenda
  runtime + SDK                                                                │  esperas, entrega eventos
  [SkailFunction] / [SkailCommand]                                             │
  seu banco, suas APIs (via commands)                                          ▼
                                                                               portal (Monitor, TTD)
```

O trigger entra pelo skail e vira uma execução do workload. A sua aplicação recebe a execução, chama a function e conclui um passo a cada `await`. Um `Delay` ou um `WaitForEvent` hiberna a execução: a sua aplicação fica livre, e o prazo ou o fire acordam a execução, que volta para a sua aplicação e continua do passo seguinte. O Monitor desenha essa sequência como linha do tempo.

## Próximos passos

[Runtime](/aprender/arquitetura/runtime.md) e [O que o skail faz pela sua execução](/aprender/arquitetura/o-que-o-skail-faz-pela-sua-execucao.md) detalham os dois lados. [Projetos, environments, namespaces e workloads](/aprender/arquitetura/projetos-environments-namespaces-e-workloads.md) explica como a sua aplicação é identificada. [Garantias de execução](/aprender/garantias/garantias-de-execucao.md) diz o que essa arquitetura promete.
