AnnouncementsIntroducing Arkoren

    Menu

    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.

    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.

    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.

    Mail

    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.

    Open a bulk documentation archive?

    This file contains every guide in its scope, not API declarations. Loading it all into an agent can exhaust its context window and increase processing time and cost. For coding tasks, start with the index and read only the relevant pages.

    Use the full archive for offline indexing, bulk processing, or deliberate large-context use.

    Browse the index instead
    Open archive