updates to adrs and fixing to reflect go refactor.
All checks were successful
Update README with ADR Index / update-readme (push) Successful in 1m2s
All checks were successful
Update README with ADR Index / update-readme (push) Successful in 1m2s
This commit is contained in:
@@ -14,7 +14,7 @@ How do we build a performant, maintainable frontend that integrates with the NAT
|
||||
## Decision Drivers
|
||||
|
||||
* Real-time streaming for chat and voice (WebSocket required)
|
||||
* Direct integration with NATS JetStream (binary MessagePack protocol)
|
||||
* Direct integration with NATS JetStream (Protocol Buffers encoding, see [ADR-0061](0061-go-handler-refactor.md))
|
||||
* Minimal client-side JavaScript (~20KB gzipped target)
|
||||
* No frontend build step (no webpack/vite/node required)
|
||||
* 3D avatar rendering for immersive experience
|
||||
@@ -39,8 +39,9 @@ Chosen option: **Option 1 - Go + HTMX + Alpine.js + Three.js**, because it provi
|
||||
* No npm, no webpack, no build step — assets served directly
|
||||
* Server-side rendering via Go templates
|
||||
* WebSocket handled natively in Go (gorilla/websocket)
|
||||
* NATS integration with MessagePack in the same binary
|
||||
* NATS integration with Protocol Buffers in the same binary
|
||||
* Distroless container image for minimal attack surface
|
||||
* Type-safe NATS messages via handler-base shared Go module (protobuf stubs)
|
||||
|
||||
### Negative Consequences
|
||||
|
||||
@@ -58,8 +59,9 @@ Chosen option: **Option 1 - Go + HTMX + Alpine.js + Three.js**, because it provi
|
||||
| Client state | Alpine.js 3 | Lightweight reactive UI for local state |
|
||||
| 3D Avatars | Three.js + VRM | 3D character rendering with lip-sync |
|
||||
| Styling | Tailwind CSS 4 + DaisyUI | Utility-first CSS with component library |
|
||||
| Messaging | NATS JetStream | Real-time pub/sub with MessagePack encoding |
|
||||
| Messaging | NATS JetStream | Real-time pub/sub with Protocol Buffers encoding |
|
||||
| Auth | golang-jwt/jwt/v5 | JWT token handling for OAuth flows |
|
||||
| Shared lib | handler-base (Go module) | NATS client, protobuf messages, health, OTel, HTTP clients |
|
||||
| Database | PostgreSQL (lib/pq) + SQLite | Persistent + local session storage |
|
||||
| Observability | OpenTelemetry SDK | Traces, metrics via OTLP gRPC |
|
||||
|
||||
@@ -88,7 +90,7 @@ Chosen option: **Option 1 - Go + HTMX + Alpine.js + Three.js**, because it provi
|
||||
│ ┌─────────┴─────────┐ │
|
||||
│ │ NATS Client │ │
|
||||
│ │ (JetStream + │ │
|
||||
│ │ MessagePack) │ │
|
||||
│ │ Protobuf) │ │
|
||||
│ └─────────┬─────────┘ │
|
||||
└────────────────────────┼────────────────────────────────────────┘
|
||||
│
|
||||
@@ -130,8 +132,9 @@ Chosen option: **Option 1 - Go + HTMX + Alpine.js + Three.js**, because it provi
|
||||
## Links
|
||||
|
||||
* Related to [ADR-0003](0003-use-nats-for-messaging.md) (NATS messaging)
|
||||
* Related to [ADR-0004](0004-use-messagepack-for-nats.md) (MessagePack encoding)
|
||||
* Related to [ADR-0004](0004-use-messagepack-for-nats.md) (MessagePack encoding — superseded by Protocol Buffers, see [ADR-0061](0061-go-handler-refactor.md))
|
||||
* Related to [ADR-0011](0011-kuberay-unified-gpu-backend.md) (Ray Serve backend)
|
||||
* Related to [ADR-0028](0028-authentik-sso-strategy.md) (OAuth/OIDC)
|
||||
* Related to [ADR-0061](0061-go-handler-refactor.md) (Go handler refactor — handler-base shared module, protobuf wire format)
|
||||
* [HTMX Documentation](https://htmx.org/docs/)
|
||||
* [VRM Specification](https://vrm.dev/en/)
|
||||
|
||||
Reference in New Issue
Block a user