Skip to main content

Decisions

This page lists decisions that have been made along the way of making IO. If you’ve heard of Architectural Decision Records, you know what this is about.

Decisions are linked on Bluesky by @agent.io. Reply there to comment here.

No SDKs
·157 words·1 min
No third-party SDKs are used by IO to call networked APIs.
Use a Custom Fleet Manager
·160 words·1 min
Manage node configurations with Go and ssh.
Use OpenTelemetry
·757 words·4 mins
Use OpenTelemetry and Grafana for metrics, logging, and tracing.
Use Distroless Envoy images
·121 words·1 min
Reduce dependencies, vulnerabilites, and image size.
Record Decisions
·116 words·1 min
Keep a record of significant decisions that have been made or are in progress.
Use DockerHub
·61 words·1 min
Use DockerHub for container distribution.
Use SCP and SFTP
·86 words·1 min
Use SCP and SFTP to configure and observe IO.
Use SSH to connect to IO
·94 words·1 min
Use SSH to make the IO TUI available to remote users.
Use Digital Ocean
·57 words·1 min
Prefer Digital Ocean for online operations and examples.
Use Google Workspace
·24 words·1 min
Use Google Workspace to host agent.io email and docs.
Release a Private Preview
·108 words·1 min
Initially release IO in a licensed private preview with analytics.
Use Vault
·94 words·1 min
Build Vault integration and use Vault to manage secrets.
Internalize Protobuf Codegen
·116 words·1 min
All protobuf support code that IO uses is generated within the project.
Evaluate Zig
·148 words·1 min
Consider using Zig for future projects that call for high performance with limited dependencies.
Build ATProto OAuth Support
·103 words·1 min
Build support for AT Protocol Authorization directly into IO.
Build OAuth Support
·92 words·1 min
Build support for OAuth into IO.
Use Nomad
·74 words·1 min
Build Nomad integration and use Nomad to manage containers.
Use HCL
·92 words·1 min
Configure IO with the Hashicorp Configuration Language.
Build ACME Support
·81 words·1 min
Build support for the ACME protocol into IO to automatically provision SSL certificates.
Use Hugo
·131 words·1 min
Use Hugo and Blowfish to build web sites.
Use App Engine
·187 words·1 min
Use Google App Engine, but minimally, focusing on static site publication with minimal backend automation.
Use SQLite
·92 words·1 min
Use SQLite for IO internal storage and general data persistence.
Use Bubble Tea
·77 words·1 min
Use Bubble Tea to build a terminal user interface for IO.
Use Buf Connect
·58 words·1 min
Use Buf Connect instead of Google’s Go gRPC library.
Name the proxy "IO"
·39 words·1 min
Use “IO” to clearly assert the project’s goals.
Use Linux Abstract Sockets
·56 words·1 min
Use Linux Abstract Sockets for local communication
Build an Envoy Controller
·83 words·1 min
IO is an Envoy controller and Envoy is a core component of IO.
Avoid Rust
·258 words·2 mins
Hold on Rust investigations. Rust doesn’t seem to be a good fit for our current needs and practices.
Document Service Infrastructure
·77 words·1 min
Thoroughly explain and evaluate the Service Infrastructure APIs.
Develop in Go
·96 words·1 min
Use Go for all significant code development.
Use the agentio GitHub organization
·89 words·1 min
Keep all Agent IO code in the agentio org on GitHub.
Scope the Project
·85 words·1 min
Build something for developers that makes it easier and safer to work with APIs.
Use the agent.io domain
·119 words·1 min
Use the agent.io domain for Agent IO.
Use GitHub
·130 words·1 min
Use GitHub for source code management and a few lifecycle-related tasks.