Documentation
Start with a working service, add Arkoren to an existing project, or find the guide for your next feature. The API reference covers individual packages, functions, and options.
On this page
First steps
For a new service, follow Creating Projects, then extend the starter with the quickstart: a greeting route, a cache counter, and checked error responses. You need Go 1.27 or later; no database or message broker is required.
- Build your first serviceFollow the quickstart from a new project to a running HTTP service.
- Add to an existing projectKeep your router and project structure. Start with one Arkoren package.
Still deciding? Should I Choose Arkoren? explains where it fits and which trade-offs to consider.
Guides
Read the introduction for the ideas behind Arkoren, or choose the area you need below. Each guide explains when to use a feature, how to set it up, and what behavior to expect.
Getting Started
Meet Arkoren
What Arkoren is, when to choose it, how its pieces fit together, and how to contribute.
First Steps
Add Arkoren to an existing Go project or build, configure, and deploy a new service.
Concepts
Understand facades, driver contracts, domain-feature boundaries, and common integration pitfalls.
Application
Coordinate startup and shutdown, compose shared dependencies, and report whether a service can accept traffic.
Drivers
Choose a driver for each service, or write your own.
HTTP
Fundamentals
Register routes, read and limit requests, write responses, render errors, and compose middleware.
Capabilities
Keep visitor state in sessions, select request languages and translate messages, and protect application URLs with signatures.
Webhooks
Receive provider events, verify their origin, and choose safe delivery and receipt policies.
Networking
Run HTTP or HTTPS servers, provision TLS identities, and make outgoing requests with retries and tracing.
Security
Browser Security
Configure browser security headers, cross-origin access, and protection against forged requests.
Abuse Prevention
Limit request volume and verify browser challenges before accepting sensitive submissions.
Authentication
Find out who sent a request, with session logins, API tokens, or OAuth.
Authorization
Decide what a signed-in user may do with plain Go rules, whatever authenticated them.
Hashing
Store and check password hashes, choose a driver and resource budget, and renew verified credentials.
Keys
Choose, generate, and load validated shared, signing, and exchange keys.
Encryption
Encrypt recoverable values, choose a local cipher, rotate keys, and persist authenticated records.
Secrets
Read private credentials, choose a secret provider, manage retained versions, and coordinate consumer rotation.
Data
Database
Connect to a database, execute queries, and manage transactions, locks, and result streams.
Queries
Build parameterized statements, write SQL directly, and paginate results.
Migrations
Define schema changes, apply migrations, and deploy them safely.
Validation
Reusable schemas for application input, normalization, conditional rules, and JSON Schema.
Cache
Reuse typed values, define cache identities, and coordinate counts and work through a cache.
Search
Index documents and search them with full-text queries, filters, and sorting on memory, Postgres, Meilisearch, and OpenSearch.
Storage
Store, serve, and sign files on disk or in object storage.
Collections
Chainable, typed operations over slices and maps.
Application
Feature Flags
Turn behavior on or off, or pick a value, per user without deploying.
Events
React to synchronous in-process events and inspect the events emitted by built-in services.
Broadcasting
Publish facts to every interested process and listen by exact name or wildcard, on memory, Redis, NATS, RabbitMQ, MQTT, or SNS.
Send transactional email through SMTP or a provider API behind one portable message model.
Push
Send visible browser notifications, manage subscriptions in your application, and test sends without a push service.
Payments
Hosted checkout, native mobile payments, and provider-managed subscriptions with explicit application wiring.
Background
Queues
Move slow or unreliable work into background jobs with retries, backoff, and failure handling, on memory, RabbitMQ, NATS, SQS, or Cloudflare.
Scheduling
Run functions on a calendar and defer one-off tasks, with time zone rules, error handling, and the drivers that decide when work runs.
Workflows
Coordinate long-running processes with steps and signals, then run and test them on memory, Temporal, or Restate.
AI
Language Models
Generate replies, own conversation history, run guarded tools, and validate or stream model output.
MCP
Build and serve typed MCP tools, secure their HTTP endpoint, and separate capability availability from resource authorization.
Skills
Install, pin, and use Arkoren documentation in a coding agent, independently of runtime MCP and CLI access.
Operations
Observability
Share telemetry, choose signal drivers, trace requests, log failures, and review data exposure.
Diagnostics
Configure bounded capture, investigate running applications, and look up protected diagnostic tools.
CLI
Install the CLI, connect to an MCP endpoint, call tools, and automate bounded waits and follows.
Testing
Test handlers, services, and drivers with fakes, controlled time, and conformance suites.
Documentation
OpenAPI
Describe HTTP contracts, export OpenAPI JSON, and publish documentation with an optional Swagger UI.
AsyncAPI
Describe typed messaging contracts, wire schemas, and broker requirements, then export or serve AsyncAPI JSON.
API reference
Find canonical Go declarations and package examples on pkg.go.dev. The API module catalog links to core, foundation, and vendor driver modules.