Modelo
Architecture diagrams as code using the C4 model - version-controlled, automatically generated, and interactive.
El ecosistema Goa incluye bibliotecas y herramientas complementarias que cubren necesidades comunes en el desarrollo de servicios y sistemas con agentes. Estos proyectos están diseñados para funcionar de forma integrada con Goa y Goa-AI, pero también se pueden utilizar de manera independiente.
| Proyecto | Propósito | Características Clave |
|---|---|---|
| Model | Diagramas de Arquitectura | Diagramas C4 como código, control de versiones, editor interactivo |
| Pulse | Eventos distribuidos | Flujo de eventos, grupos de trabajadores, mapas replicados |
| Clue | Observabilidad | Rastreo, registro, métricas, comprobaciones de salud |
| Chorus | Coordinación multiagente | #channels compartidos, mensajes directos @agent, cursores en el servidor, CLI chorus watch |
Model proporciona un Go DSL para describir la arquitectura del software usando el C4 model. En lugar de dibujar diagramas en herramientas gráficas, usted define su arquitectura en código:
var _ = Design("My System", "System description", func() {
var System = SoftwareSystem("My System", "Does something useful")
Person("User", "A user of the system", func() {
Uses(System, "Uses")
})
Views(func() {
SystemContextView(System, "Context", "System context diagram", func() {
AddAll()
AutoLayout(RankLeftRight)
})
})
})
**Ventajas
Más información: Documentación del modelo
Pulse proporciona primitivas para construir sistemas distribuidos basados en eventos. Es independiente del transporte y funciona con o sin servicios Goa:
// Publish events to a stream
stream.Add(ctx, "user.created", userEvent)
// Subscribe to events
reader.Subscribe(ctx, func(event *Event) error {
return processEvent(event)
})
**Casos de uso
Más información: Documentación de Pulse
Clue proporciona instrumentación para servicios Goa construidos sobre OpenTelemetry. Cubre los tres pilares de la observabilidad:
// Configure OpenTelemetry
cfg := clue.NewConfig(ctx, "myservice", "1.0.0", metricExporter, spanExporter)
clue.ConfigureOpenTelemetry(ctx, cfg)
// Context-based logging
log.Info(ctx, "processing request", log.KV{"user_id", userID})
// Health checks
checker := health.NewChecker(health.NewPinger("db", dbAddr))
**Características
Más información: Documentación de Clue
Chorus es un servidor MCP construido con Goa-AI y Pulse que permite coordinar varios agentes de programación entre terminales y familias de modelos mediante #channels y mensajes directos @agent:
# Instalar Chorus, registrar http://localhost:9440/mcp e iniciar el servicio en segundo plano
curl -fsSL https://raw.githubusercontent.com/goadesign/chorus/main/scripts/install.sh | sh
# O instalar la skill del agente mediante la CLI de Skills
npx skills add goadesign/chorus --skill chorus
Características:
who, join, leave, send, read) en un único punto final POST /mcppulse/rmap y registros de mensajes acotados en pulse/streamingsend y respuestas compactas en texto planochorus watch) que bloquea hasta que llega un mensaje directo, mención o respuestaMás información: Documentación de Chorus
| Guía | Descripción | ~Tokens |
|---|---|---|
| Model | Diagramas C4, referencia DSL, mdl CLI | ~2.500 |
| Pulse | Streaming, pools de trabajadores, mapas replicados | ~2.200 |
| Clue | Registro, rastreo, métricas, comprobaciones de salud | ~2.800 |
| Chorus | Coordinación MCP multiagente, CLI y arquitectura Goa-AI + Pulse | ~1.100 |
Sección total: ~8.600 tokens
Elija la biblioteca o herramienta que se ajuste a sus necesidades:
Todas las bibliotecas y herramientas están disponibles a través de go get / go install:
go get goa.design/model
go get goa.design/pulse
go get goa.design/clue
go install github.com/goadesign/chorus/cmd/chorus@latest