# Arkoren > Arkoren is a modular Go toolkit with portable contracts and opt-in drivers. [Documentation website](https://arkoren.dev/docs) ยท [Use with your agent](https://arkoren.dev/docs/guides/agent-skills/working-with-agents.md) For coding tasks, fetch only the guides you need. Full guide archives are optional bulk exports, not the recommended reading path. ## Getting Started ### Meet Arkoren - [Introduction](https://arkoren.dev/docs/guides/about/introduction.md): Understand Arkoren's modular approach and choose a starting point for your Go application. - [Choosing Arkoren](https://arkoren.dev/docs/guides/about/choosing-arkoren.md): Evaluate Arkoren's shared conventions, integration boundaries, and backend limits before adopting a capability. - [Contributing](https://arkoren.dev/docs/guides/about/contributing.md): Locate a toolkit change, preserve module and contract boundaries, and run the relevant contributor checks. ### First Steps - [Installation](https://arkoren.dev/docs/guides/first-steps/installation.md): Choose Arkoren modules and add a capability to an existing Go application without changing its structure. - [Creating Projects](https://arkoren.dev/docs/guides/first-steps/creating-a-project.md): Preview and generate an owned HTTP starter, resolve its dependencies, and understand its development defaults. - [Quickstart](https://arkoren.dev/docs/guides/first-steps/quickstart.md): Extend the generated HTTP service with a greeting route, a process-local counter, and a checked error response. - [Configuration](https://arkoren.dev/docs/guides/first-steps/configuration.md): Translate application settings into typed construction callbacks while preserving component defaults and ownership. - [Project Layout](https://arkoren.dev/docs/guides/first-steps/project-layout.md): Grow an application into feature-owned packages while keeping dependency construction and resource ownership visible. - [Deployment](https://arkoren.dev/docs/guides/first-steps/deploying.md): Build and run a service with explicit production settings, health probes, bounded shutdown, and application-owned credentials. ### Concepts - [Facades and Drivers](https://arkoren.dev/docs/guides/core-concepts/facades-and-drivers.md): Separate application-facing service calls from backend selection, configuration, and ownership. - [Contracts](https://arkoren.dev/docs/guides/core-concepts/contracts.md): Understand the behavioral guarantees, error identities, and verification boundaries behind a service interface. - [Arks](https://arkoren.dev/docs/guides/core-concepts/arks.md): Distinguish reusable domain features from service mechanisms, backend drivers, and application policy. - [Common Pitfalls](https://arkoren.dev/docs/guides/core-concepts/common-pitfalls.md): Recognize unsafe assumptions about ownership, configuration, HTTP behavior, data access, and deployment. ### Application - [Application Overview](https://arkoren.dev/docs/guides/application/overview.md): Decide whether your service needs an application coordinator and understand its boundaries. - [Application Composition](https://arkoren.dev/docs/guides/application/composition.md): Construct typed dependencies once, keep ownership explicit, and select optional features before startup. - [Lifecycle and Ownership](https://arkoren.dev/docs/guides/application/lifecycle-and-ownership.md): Start dependencies in order, supervise running work, and release resources after failures or shutdown. - [Health and Readiness](https://arkoren.dev/docs/guides/application/health-and-readiness.md): Control traffic with cached dependency checks while keeping restart and startup decisions separate. ### Drivers - [Choosing a Driver](https://arkoren.dev/docs/guides/drivers/choosing-a-driver.md): Compare backend requirements, find available providers, and follow the setup guide for your service. - [Writing a Driver](https://arkoren.dev/docs/guides/drivers/writing-a-driver.md): Implement an application-owned service driver or wrapper with explicit behavior, resource ownership, and contract tests. ## HTTP ### Fundamentals - [Routing](https://arkoren.dev/docs/guides/http-fundamentals/routing.md): Register request handlers, capture path values, group routes, and mount standard HTTP handlers. - [Requests](https://arkoren.dev/docs/guides/http-fundamentals/requests.md): Read typed request inputs, decode bounded bodies, and preserve input errors and upload ownership. - [Responses](https://arkoren.dev/docs/guides/http-fundamentals/responses.md): Return ordinary handler results as JSON, text, HTML, bytes, or redirects without hiding response failures. - [Streaming Responses](https://arkoren.dev/docs/guides/http-fundamentals/streaming-responses.md): Send live bytes or server-sent events while managing producer cancellation, shutdown, and committed failures. - [Error Handling](https://arkoren.dev/docs/guides/http-fundamentals/error-handling.md): Turn returned errors into client-safe Problem Details and preserve causes for diagnostics. - [Middleware](https://arkoren.dev/docs/guides/http-fundamentals/middleware.md): Scope and order request policies, write wrappers, and preserve lifecycle behavior across native HTTP adapters. - [Body Limits](https://arkoren.dev/docs/guides/http-fundamentals/body-limit.md): Set request-body ceilings before parsing and scope larger inputs without weakening ordinary endpoints. - [Content Types](https://arkoren.dev/docs/guides/http-fundamentals/content-type.md): Reject request media types an endpoint does not accept before decoding its body. ### Capabilities - [Sessions](https://arkoren.dev/docs/guides/http-capabilities/sessions.md): Store visitor state in a cache-backed session and understand identity rotation, expiry, and response-time persistence. - [Localization](https://arkoren.dev/docs/guides/http-capabilities/localization.md): Select a request language from client preferences and render validation messages with catalogs and explicit fallbacks. - [Signed Links](https://arkoren.dev/docs/guides/http-capabilities/secure-links.md): Issue expiring application URLs and enforce verification, single use, and state bindings without confusing signatures with authorization. ### Webhooks - [Receiving Webhooks](https://arkoren.dev/docs/guides/webhooks/receiving-webhooks.md): Authenticate incoming provider notifications and bind reusable event definitions to typed application handlers. - [Provider Adapters](https://arkoren.dev/docs/guides/webhooks/provider-adapters.md): Choose the correct provider verifier, supply endpoint credentials, and preserve native event keys and delivery identities. - [Delivery Policies](https://arkoren.dev/docs/guides/webhooks/delivery-policies.md): Choose receipt retention, queued acceptance, failure responses, and operating limits for a webhook receiver. ### Networking - [HTTP Server](https://arkoren.dev/docs/guides/http-networking/server.md): Bind HTTP listeners during startup, serve prepared handlers, and drain connections with explicit shutdown ownership. - [HTTP Client](https://arkoren.dev/docs/guides/http-networking/http-client.md): Send outgoing requests with explicit replay safety, bounded retries, response-body ownership, and trace-context policy. - [TLS Certificates](https://arkoren.dev/docs/guides/http-networking/certificates.md): Provision local identities, load certificate files, and configure server trust and mutual TLS without weakening verification. ## Security ### Browser Security - [Overview](https://arkoren.dev/docs/guides/browser-security/overview.md): Choose browser defenses for response handling, cross-origin access, and forged cookie-backed actions. - [Secure Headers](https://arkoren.dev/docs/guides/browser-security/secure-headers.md): Set browser response policies for framing, content handling, resource loading, and deliberate HTTPS persistence. - [CORS](https://arkoren.dev/docs/guides/browser-security/cors.md): Grant explicit cross-origin browser response access and handle preflights without confusing CORS with request authorization. - [CSRF Protection](https://arkoren.dev/docs/guides/browser-security/csrf-protection.md): Reject forged cookie-backed browser actions with request-header checks and narrowly scoped cross-origin exceptions. ### Abuse Prevention - [Abuse Prevention Overview](https://arkoren.dev/docs/guides/abuse-prevention/overview.md): Choose request budgets and browser verification for sensitive endpoints without confusing abuse checks with permission. - [Rate Limiting](https://arkoren.dev/docs/guides/abuse-prevention/rate-limiting.md): Apply cache-backed request budgets, choose trusted client keys, and interpret recovery headers and backend failures. - [CAPTCHA](https://arkoren.dev/docs/guides/abuse-prevention/captcha.md): Verify browser tokens with Turnstile or Google reCAPTCHA using trusted hostname, action, and score policies before protected effects. ### Authentication - [Authentication Overview](https://arkoren.dev/docs/guides/authentication/overview.md): Resolve credentials into your application's identity and choose which routes require it. - [Session Login](https://arkoren.dev/docs/guides/authentication/session-login.md): Check application-owned credentials, rotate the browser session, and revoke account sessions. - [API Tokens](https://arkoren.dev/docs/guides/authentication/api-tokens.md): Accept bearer credentials and manage application-issued API keys with hashed storage and revocation. - [OAuth Login](https://arkoren.dev/docs/guides/authentication/oauth.md): Complete external browser sign-in and map the provider identity to a local account safely. - [OIDC Tokens](https://arkoren.dev/docs/guides/authentication/oidc-bearer.md): Verify provider-issued JWTs for an API and resolve the exact request identity your handlers need. ### Authorization - [Authorization Overview](https://arkoren.dev/docs/guides/authorization/overview.md): Check actions with plain Go rules and keep permission decisions beside the resources they protect. - [Writing Policies](https://arkoren.dev/docs/guides/authorization/policies.md): Group feature rules in policy structs and distinguish tenant roles, application permissions, and delegated scopes. - [Row-Level Access](https://arkoren.dev/docs/guides/authorization/row-access.md): Enforce record visibility in store queries and preserve authorization boundaries during concurrent writes. - [Handling Denials](https://arkoren.dev/docs/guides/authorization/denials.md): Return accurate authorization responses and observe rule denials without collecting private request data. ### Hashing - [Hashing Overview](https://arkoren.dev/docs/guides/hashing/overview.md): Store password hashes and distinguish a successful password check from a mismatch or a storage failure. - [Hashing Drivers](https://arkoren.dev/docs/guides/hashing/drivers.md): Configure Argon2id or bcrypt and understand their stored formats, input limits, and shared metrics. - [Choosing Cost](https://arkoren.dev/docs/guides/hashing/cost.md): Measure a known hash policy, tune its work settings, and bound the resources available to password requests. - [Upgrading Hashes](https://arkoren.dev/docs/guides/hashing/upgrading.md): Renew verified password hashes with conditional writes and migrate supported records without changing unverified credentials. ### Keys - [Application Keys](https://arkoren.dev/docs/guides/keys/overview.md): Choose typed application keys, validate stored material, and separate public output from private exports. ### Encryption - [Encryption Overview](https://arkoren.dev/docs/guides/encryption/overview.md): Encrypt recoverable application values and reject ciphertext that cannot be authenticated or decoded. - [Encryption Drivers](https://arkoren.dev/docs/guides/encryption/drivers.md): Choose and configure a local authenticated cipher, including purpose binding and cleanup ownership. - [Encryption Keys](https://arkoren.dev/docs/guides/encryption/keys.md): Keep current and previous encryption keys available and rotate writers without losing access to existing ciphertext. - [Storing Data](https://arkoren.dev/docs/guides/encryption/storing.md): Persist encrypted records with explicit schema, identity binding, encoding, and guarded re-encryption. ### Secrets - [Secrets Overview](https://arkoren.dev/docs/guides/secrets/overview.md): Load private application credentials through a secret store without confusing storage with runtime configuration. - [Secrets Drivers](https://arkoren.dev/docs/guides/secrets/drivers.md): Choose and configure a secret provider with explicit payload, permission, retention, and lifecycle boundaries. - [Managing Secrets](https://arkoren.dev/docs/guides/secrets/managing.md): Write versioned values, verify retained versions, observe facade outcomes, and retire secrets without mistaking deletion for rotation. - [Secret Rotation](https://arkoren.dev/docs/guides/secrets/rotation.md): Coordinate credential replacement, consumer refresh, verification overlap, and retained encryption material. ## Data ### Database - [Overview](https://arkoren.dev/docs/guides/database/overview.md): Use the database facade to read typed results, execute writes, and map SQL columns to Go values. - [Drivers](https://arkoren.dev/docs/guides/database/drivers.md): Choose and configure SQLite, PostgreSQL, or MySQL, with clear compatibility differences. - [Transactions](https://arkoren.dev/docs/guides/database/transactions.md): Group related operations atomically, including context propagation, nesting, isolation, and retries. - [Locking](https://arkoren.dev/docs/guides/database/locking.md): Coordinate concurrent work with row or named locks, with explicit ownership, scope, and lifetime. - [Batching and Streaming](https://arkoren.dev/docs/guides/database/batching-and-streaming.md): Process large datasets in batches or as a stream without loading every row into memory. - [Monitoring](https://arkoren.dev/docs/guides/database/query-monitoring.md): Observe database activity through events, spans, metrics, and privacy-conscious diagnostics. ### Queries - [Query Builder](https://arkoren.dev/docs/guides/queries/query-builder.md): Build reads and writes, then introduce joins, reusable conditions, and advanced queries. - [Raw SQL](https://arkoren.dev/docs/guides/queries/raw-sql.md): Run handwritten SQL safely, bind parameters, and account for dialect differences. - [Pagination](https://arkoren.dev/docs/guides/queries/pagination.md): Return result windows with offset or cursor pagination, request parameters, and cursor safety. ### Migrations - [Overview](https://arkoren.dev/docs/guides/migrations/overview.md): Define, register, apply, inspect, roll back, and test schema or data changes. - [Schema Builder](https://arkoren.dev/docs/guides/migrations/schema-builder.md): Define and change tables, columns, indexes, and constraints across database dialects. - [Deployment](https://arkoren.dev/docs/guides/migrations/deployment.md): Ship schema changes safely through rolling deployments, concurrent runners, and failure recovery. - [Troubleshooting](https://arkoren.dev/docs/guides/migrations/troubleshooting.md): Diagnose migration failures and follow targeted recovery procedures, including MySQL ledger repair. ### Validation - [Overview](https://arkoren.dev/docs/guides/validation/overview.md): Define reusable rules for typed input and retain prepared values with Parse. - [Scalar Rules](https://arkoren.dev/docs/guides/validation/available-methods.md): Reject unsuitable text, numbers, booleans, times, and uploaded files without rewriting them. - [Structs and Reuse](https://arkoren.dev/docs/guides/validation/structs-and-reuse.md): Compose exact-type field rules, nested objects, shared policies, and optional pointer values. - [Slices and Maps](https://arkoren.dev/docs/guides/validation/collections.md): Check collection entries, membership, identities, and matching counts without removing data. - [Conditions](https://arkoren.dev/docs/guides/validation/conditions.md): Select field requirements and scoped rules from prepared values in the enclosing struct. - [Normalizers](https://arkoren.dev/docs/guides/validation/normalizers.md): Prepare cleaned values before checking presence and rules, without changing caller-owned input. - [Custom Rules](https://arkoren.dev/docs/guides/validation/custom-rules.md): Add application-specific value and object checks while preserving operational errors. - [Validation Errors](https://arkoren.dev/docs/guides/validation/errors.md): Read structured violations, translate their messages, and distinguish input failures from invalid definitions. - [JSON Schema](https://arkoren.dev/docs/guides/validation/json-schema.md): Export representable rules, infer output shapes, or validate decoded JSON with explicit interchange limits. - [Encoded JSON](https://arkoren.dev/docs/guides/validation/encoded-json.md): Check exact JSON document bytes without applying defaults, normalizers, or binary64 rounding. ### Cache - [Cache Overview](https://arkoren.dev/docs/guides/cache/overview.md): Reuse typed values, compute missing results, and choose atomic operations for concurrent callers. - [Cache Drivers](https://arkoren.dev/docs/guides/cache/drivers.md): Choose process-local or shared caching and configure driver connections, ownership, and native access. - [Cache Keys](https://arkoren.dev/docs/guides/cache/keys.md): Declare typed cache identities, reuse expiry policies, and preserve names safely across deployments. - [Cache Counters](https://arkoren.dev/docs/guides/cache/counters.md): Update shared integer counts atomically and give request windows an expiry without a separate write. - [Cache Locks](https://arkoren.dev/docs/guides/cache/locks.md): Acquire, release, and renew expiring leases without mistaking them for resource-level write protection. - [Cache Monitoring](https://arkoren.dev/docs/guides/cache/monitoring.md): Interpret cache spans, hit ratios, errors, and privacy limits using the facade's telemetry. ### Search - [Search Overview](https://arkoren.dev/docs/guides/search/overview.md): Query a configured search engine and read typed document hits without coupling application code to a backend. - [Search Drivers](https://arkoren.dev/docs/guides/search/drivers.md): Choose a search backend, configure its engine, and account for native ownership, deployment requirements, and matching limits. - [Indexing Documents](https://arkoren.dev/docs/guides/search/indexing-documents.md): Declare typed search documents and field policies, replace indexed records, and remove documents with explicit batch and retry boundaries. - [Search Queries](https://arkoren.dev/docs/guides/search/queries.md): Combine search text, typed filters, permission boundaries, and ordering within a bounded result window. - [Deploying Search](https://arkoren.dev/docs/guides/search/deploying.md): Synchronize backend indexes during deployment, verify definitions at startup, and recover safely from schema changes or partial failures. - [Search Monitoring](https://arkoren.dev/docs/guides/search/monitoring.md): Observe search operations with shared telemetry and bounded deployment events while preserving data and lifecycle boundaries. ### Storage - [Overview](https://arkoren.dev/docs/guides/file-storage/overview.md): Write and read logical objects, manage stream ownership, and traverse portable keys with explicit error handling. - [Drivers](https://arkoren.dev/docs/guides/file-storage/drivers.md): Choose and configure memory, filesystem, or S3 storage with explicit lifecycle, ownership, and backend limits. - [Uploads and Downloads](https://arkoren.dev/docs/guides/file-storage/uploads-and-downloads.md): Store bounded uploads under safe keys and serve authorized objects with attachment, inline, and range behavior. - [Signed URLs](https://arkoren.dev/docs/guides/file-storage/signed-urls.md): Authorize direct S3 transfers, bind upload headers and exact size, and distinguish provider URLs from application-signed routes. - [Events and Telemetry](https://arkoren.dev/docs/guides/file-storage/events-and-telemetry.md): Observe successful object changes, interpret facade spans and metrics, and preserve storage privacy boundaries. ### Collections - [Overview](https://arkoren.dev/docs/guides/collections/overview.md): Shape in-memory application records with eager slice and map collections while preserving clear ordering and ownership. - [Lazy Collections](https://arkoren.dev/docs/guides/collections/lazy-collections.md): Defer collection work until traversal and choose safe stopping, buffering, and replay behavior for your source. - [Fallible Collections](https://arkoren.dev/docs/guides/collections/fallible-collections.md): Preserve read and callback failures while choosing whether to stop, retain a partial result, or continue traversal. - [Collection Methods](https://arkoren.dev/docs/guides/collections/available-methods.md): Look up collection operations by task, including receiver forms, small examples, and consequential differences. ## Application ### Feature Flags - [Feature Flags Overview](https://arkoren.dev/docs/guides/feature-flags/overview.md): Evaluate typed flags for explicit subjects and choose safe behavior when evaluation supplies no value or fails. - [Feature Flag Drivers](https://arkoren.dev/docs/guides/feature-flags/drivers.md): Choose and construct memory, OpenFeature, or LaunchDarkly drivers with explicit lifecycle and native-client ownership. - [Feature Flag Testing](https://arkoren.dev/docs/guides/feature-flags/testing.md): Arrange deterministic flag states, exercise evaluation failures, and check custom drivers with a disposable conformance harness. ### Events - [Overview](https://arkoren.dev/docs/guides/events/overview.md): Publish typed local notifications and choose between best-effort observation and error-returning dispatch. - [Writing Listeners](https://arkoren.dev/docs/guides/events/listeners.md): Register local observers, own their removal, and keep failure and concurrency behavior explicit. - [Built-in Events](https://arkoren.dev/docs/guides/events/built-in-events.md): Find component notifications, their enabling policies, and the boundary each observation describes. - [HTTP Events](https://arkoren.dev/docs/guides/events/http-events.md): Inspect HTTP publication timing, request metadata, and diagnostic privacy boundaries. - [Service Events](https://arkoren.dev/docs/guides/events/service-operations.md): Interpret local payment, push, search, and secret operation results without inventing durable business outcomes. - [Event Auditing](https://arkoren.dev/docs/guides/events/auditing.md): Separate optional observations from required audit records that commit with application changes. ### Broadcasting - [Broadcasting Overview](https://arkoren.dev/docs/guides/broadcasting/overview.md): Announce typed facts and route received notifications to independent listeners. - [Broadcast Drivers](https://arkoren.dev/docs/guides/broadcasting/drivers.md): Choose and connect a broadcast transport, including native resources and disposable local brokers. - [Message Delivery](https://arkoren.dev/docs/guides/broadcasting/message-delivery.md): Own subscriptions and consumer cancellation, and handle failed or repeated notifications. - [Monitoring](https://arkoren.dev/docs/guides/broadcasting/metadata-and-telemetry.md): Propagate trace context through notifications and interpret broadcast spans and metrics without recording message contents. ### Mail - [Mail Overview](https://arkoren.dev/docs/guides/mail/overview.md): Send transactional email through a portable facade and distinguish submission acceptance from recipient delivery. - [Mail Drivers](https://arkoren.dev/docs/guides/mail/drivers.md): Configure outbound mail transports and optional provider notification or inbound receivers without confusing submission with delivery. - [Composing Messages](https://arkoren.dev/docs/guides/mail/composing-messages.md): Build immutable email messages with recipient groups, alternative bodies, attachments, and inline images. - [Sender Defaults](https://arkoren.dev/docs/guides/mail/configuration.md): Share sender and reply-to addresses across messages and override them without mutating published values. - [Events and Telemetry](https://arkoren.dev/docs/guides/mail/events-and-telemetry.md): Observe mail submission attempts with bounded outcome events, spans, and metrics while preserving privacy and uncertainty boundaries. ### Push - [Overview](https://arkoren.dev/docs/guides/push/overview.md): Submit typed push messages, choose retention, and distinguish acceptance from browser display. - [Drivers](https://arkoren.dev/docs/guides/push/drivers.md): Choose a push backend and configure sender retention, VAPID credentials, and secure endpoint submission. - [VAPID Keys](https://arkoren.dev/docs/guides/push/vapid-keys.md): Keep a persistent Web Push signing identity and publish only its browser-ready public key. - [Browser Integration](https://arkoren.dev/docs/guides/push/browser-integration.md): Register browser subscriptions for authenticated users and display submitted notifications with a service worker. - [Testing](https://arkoren.dev/docs/guides/push/testing.md): Assert application submissions with the push fake and verify browser delivery through separate acceptance checkpoints. ### Payments - [Payments Overview](https://arkoren.dev/docs/guides/payments/overview.md): Understand payment resources and read provider evidence before fulfilling an order. - [Payment Drivers](https://arkoren.dev/docs/guides/payments/drivers.md): Choose and configure a payment backend, with optional provider notifications and local call monitoring. - [Hosted Checkout](https://arkoren.dev/docs/guides/payments/hosted-checkout.md): Start provider-hosted approval, complete eligible checkouts explicitly, and verify collection before fulfillment. - [Mobile Payments](https://arkoren.dev/docs/guides/payments/mobile-payments.md): Prepare a protected client SDK handoff and verify its financial outcome on the backend. - [Payment Refunds](https://arkoren.dev/docs/guides/payments/refunds.md): Request explicit refund amounts and read the refund's own progress without confusing acceptance with completion. - [Recurring Subscriptions](https://arkoren.dev/docs/guides/payments/subscriptions.md): Enroll buyers in existing provider plans, observe agreement state, and cancel future renewals explicitly. - [Payment Recovery](https://arkoren.dev/docs/guides/payments/recovery.md): Preserve uncertain mutation outcomes and reconcile saved operations within provider-specific replay limits. - [Mollie Callbacks](https://arkoren.dev/docs/guides/payments/mollie-callbacks.md): Bound unsigned callback hints, verify saved merchant ownership, and reconcile authoritative provider reads durably. - [Testing Payments](https://arkoren.dev/docs/guides/payments/testing.md): Simulate payment lifecycles or script uncertain provider replies without network calls or money movement. ## Background ### Queues - [Overview](https://arkoren.dev/docs/guides/queues/overview.md): Hand background work to a worker with typed jobs, dispatchers, and consumers. - [Drivers](https://arkoren.dev/docs/guides/queues/drivers.md): Choose a queue backend and configure its routing, resources, connections, and local checks. - [Producing Jobs](https://arkoren.dev/docs/guides/queues/producing-jobs.md): Define typed work, route it to a queue, and make the handoff without confusing acceptance with completion. - [Consuming Jobs](https://arkoren.dev/docs/guides/queues/consuming-jobs.md): Register typed handlers, choose worker queues, and run consumers with a controlled shutdown. - [Delivery and Retries](https://arkoren.dev/docs/guides/queues/delivery-and-retries.md): Choose retry and terminal outcomes while accounting for uncertain sends, duplicate effects, deadlines, and broker settlement. - [Monitoring](https://arkoren.dev/docs/guides/queues/metadata-and-telemetry.md): Trace jobs across processes, count delivery attempts, and observe accepted retry and failure outcomes. ### Scheduling - [Overview](https://arkoren.dev/docs/guides/scheduled-tasks/overview.md): Register background work with a scheduler and distinguish calendar timing from handler execution. - [Drivers](https://arkoren.dev/docs/guides/scheduled-tasks/drivers.md): Choose process-local timers or an engine-backed scheduler and configure its delivery, ownership, and shutdown rules. - [Calendar Schedules](https://arkoren.dev/docs/guides/scheduled-tasks/calendar-schedules.md): Define recurring entries with calendar fields or cron and choose overlap and cooperative timeout policies. - [Deferred Tasks](https://arkoren.dev/docs/guides/scheduled-tasks/deferred-tasks.md): Register typed one-off handlers, defer payloads until later, and interpret submission and cancellation outcomes. - [Time Zones](https://arkoren.dev/docs/guides/scheduled-tasks/time-zones-and-dst.md): Choose UTC or named local time and account for skipped and repeated wall-clock times during daylight saving changes. - [Error Handling](https://arkoren.dev/docs/guides/scheduled-tasks/error-handling.md): Classify scheduled run outcomes, observe failures, and separate cooperative cancellation from driver recovery. ### Workflows - [Workflows Overview](https://arkoren.dev/docs/guides/workflows/overview.md): Coordinate long-running processes with typed workflows and replay-safe steps. - [Workflow Drivers](https://arkoren.dev/docs/guides/workflows/drivers.md): Choose and configure memory, Temporal, or Restate for workflow execution. - [Workflow Steps](https://arkoren.dev/docs/guides/workflows/steps.md): Run external effects with explicit attempt policies and choose the right child-workflow lifetime. - [Signals and Waiting](https://arkoren.dev/docs/guides/workflows/signals-and-waiting.md): Wait for typed external messages or durable timers without blocking on application channels. - [Running Workflows](https://arkoren.dev/docs/guides/workflows/running-workflows.md): Start, inspect, signal, and cancel identified runs through the workflow client. - [Worker Hosts](https://arkoren.dev/docs/guides/workflows/shared-worker-host.md): Share native workflow and scheduler resources with explicit startup, readiness, and cleanup ownership. - [Error Handling](https://arkoren.dev/docs/guides/workflows/error-handling.md): Classify step failures, compensate for earlier effects, and recognize errors across worker boundaries. - [Testing Workflows](https://arkoren.dev/docs/guides/workflows/testing.md): Separate submission tests, in-process workflow decisions, and native replay or retention checks. ## AI ### Language Models - [Language Models Overview](https://arkoren.dev/docs/guides/llm/overview.md): Generate a model reply and distinguish response data, agent execution, and application-owned conversation state. - [Drivers](https://arkoren.dev/docs/guides/llm/drivers.md): Configure hosted OpenAI or a compatible server and compare the driver's two API modes. - [Conversation History](https://arkoren.dev/docs/guides/llm/conversation-history.md): Continue and persist caller-owned conversations without losing tool results, reasoning signatures, or buffer ownership. - [Running Agents](https://arkoren.dev/docs/guides/llm/running-agents.md): Run reusable agent definitions with bounded turns, concurrent tools, and explicit failure outcomes. - [Defining Tools](https://arkoren.dev/docs/guides/llm/defining-tools.md): Expose typed application operations with validated arguments, capability policies, and resource authorization. - [Structured Output](https://arkoren.dev/docs/guides/llm/structured-output.md): Decode a model's final answer into a validated Go value and control correction attempts. - [Streaming Replies](https://arkoren.dev/docs/guides/llm/streaming.md): Display incremental replies and tool progress while preserving cancellation, completion, and browser-delivery boundaries. - [Embeddings](https://arkoren.dev/docs/guides/llm/embeddings.md): Generate ordered text vectors and keep model, dimensions, purpose, and storage responsibilities consistent. - [Local Development](https://arkoren.dev/docs/guides/llm/local-development-with-ollama.md): Run downloaded Ollama models through the OpenAI driver and verify local generation separately from application tests. - [Testing Models](https://arkoren.dev/docs/guides/llm/testing.md): Script model turns, inspect requests, and test application outcomes without provider calls. ### MCP - [Overview](https://arkoren.dev/docs/guides/mcp/overview.md): Expose typed application operations as discoverable MCP tools while retaining application-owned policy and HTTP serving. - [First Server](https://arkoren.dev/docs/guides/mcp/first-server.md): Build a local HTTP MCP server and discover and call its first tool with an MCP client. - [Tools](https://arkoren.dev/docs/guides/mcp/tools.md): Define typed tool operations, validate their wire contracts, and register them with application-owned HTTP serving. - [Securing MCP](https://arkoren.dev/docs/guides/mcp/securing-mcp.md): Protect the MCP HTTP boundary with verified identity, TLS, Host and Origin policy, and deliberate OAuth integration. - [Capability Access](https://arkoren.dev/docs/guides/mcp/availability-and-authorization.md): Filter tool availability by caller capability while enforcing resource authorization in shared application operations. ### Skills - [Using Skills](https://arkoren.dev/docs/guides/agent-skills/working-with-agents.md): Give a local coding agent Arkoren guidance, keep its documentation snapshot aligned with your application, or read selected guides online. ## Operations ### Observability - [Telemetry](https://arkoren.dev/docs/guides/observability/telemetry.md): Share a telemetry handle, record application work, and manage propagation, observation, and shutdown. - [Drivers](https://arkoren.dev/docs/guides/observability/telemetry-drivers.md): Choose local capture, OTLP export, or Prometheus scraping and manage each driver's resources. - [Instrumented Components](https://arkoren.dev/docs/guides/observability/instrumented-components.md): Look up built-in spans, metrics, labels, and the operation boundaries they measure. - [Request Logging](https://arkoren.dev/docs/guides/observability/request-logging.md): Record failed requests with the observed response status and optional trace correlation. - [Request Tracing](https://arkoren.dev/docs/guides/observability/request-tracing.md): Trace HTTP boundaries, correlate failures, and control incoming trust and outgoing propagation. - [Telemetry Privacy](https://arkoren.dev/docs/guides/observability/telemetry-privacy.md): Review automatic fields, logs, diagnostic capture, and propagation before retaining or exporting observations. ### Diagnostics - [Capture Setup](https://arkoren.dev/docs/guides/diagnostics/capture-setup.md): Attach bounded application capture and publish selected diagnostics on a protected MCP endpoint. - [Application Diagnosis](https://arkoren.dev/docs/guides/diagnostics/application-diagnosis.md): Investigate request failures using retained traces, logs, and health before authorizing new execution. - [Diagnostic Tools](https://arkoren.dev/docs/guides/diagnostics/diagnostic-tools.md): Look up diagnostic names, typed inputs, limits, failures, and bounded cursor behavior. ### CLI - [Overview](https://arkoren.dev/docs/guides/cli/overview.md): Choose remote MCP inspection or local provisioning and install the Arkoren CLI. - [Connecting](https://arkoren.dev/docs/guides/cli/connecting.md): Approve an MCP destination, supply an existing bearer credential, and verify discovery. - [Calling Tools](https://arkoren.dev/docs/guides/cli/calling-tools.md): Choose a discovered command, prepare its inputs, and interpret its result without replaying effects. - [Waiting and Following](https://arkoren.dev/docs/guides/cli/waiting-and-following.md): Bound condition waits and follow new records while accounting for cursor gaps and output failures. - [CLI Reference](https://arkoren.dev/docs/guides/cli/reference.md): Look up command forms, reserved flags, input conversion, output contracts, exit codes, and retries. - [Key Commands](https://arkoren.dev/docs/guides/cli/keys.md): Provision purpose-specific keys offline, check stored material, and export public PEM or VAPID values. - [Certificate Commands](https://arkoren.dev/docs/guides/cli/certificates.md): Generate local TLS identities, check file pairs, and explicitly manage exact-root system trust. ### Testing - [Overview](https://arkoren.dev/docs/guides/testing/overview.md): Choose test boundaries for application code, HTTP routes, and external services using Go's standard testing package. - [HTTP Tests](https://arkoren.dev/docs/guides/testing/http-tests.md): Exercise route matching, middleware, and response contracts with in-process HTTP requests. - [Authentication Tests](https://arkoren.dev/docs/guides/testing/auth-tests.md): Test identity-dependent handlers, protected routes, login sessions, and custom authenticators at distinct boundaries. - [Fakes](https://arkoren.dev/docs/guides/testing/fakes.md): Record external requests, script failures, and assert application behavior through real service facades. - [Controlling Time](https://arkoren.dev/docs/guides/testing/time.md): Test process-local expiry and timers deterministically, synchronize background work, and pin validation time. - [Integration Tests](https://arkoren.dev/docs/guides/testing/integration-tests.md): Verify backend-specific behavior against disposable infrastructure with bounded operations and test-owned cleanup. - [Driver Conformance](https://arkoren.dev/docs/guides/testing/conformance-suites.md): Check custom drivers and wrappers against shared public contracts with suite-specific fixtures and lifecycle ownership. ## Documentation ### OpenAPI - [OpenAPI Overview](https://arkoren.dev/docs/guides/openapi/overview.md): Describe an HTTP route and export its contract independently of request handling or documentation serving. - [Describing Operations](https://arkoren.dev/docs/guides/openapi/operations.md): Align typed requests and responses with explicit parameters, errors, examples, and security declarations. - [Serving Documentation](https://arkoren.dev/docs/guides/openapi/serving.md): Export an HTTP contract, serve cached JSON, and mount a bundled Swagger UI with explicit access controls. - [Built-in Handlers](https://arkoren.dev/docs/guides/openapi/built-in-handlers.md): Attach shipped application annotations and identify integrations that need an explicit, application-specific contract. ### AsyncAPI - [AsyncAPI Overview](https://arkoren.dev/docs/guides/asyncapi/overview.md): Generate a messaging contract from typed definitions, payload schemas, destinations, and application operations. - [Messages and Schemas](https://arkoren.dev/docs/guides/asyncapi/messages-and-schemas.md): Describe complete wire messages, expose decoded payload shapes, and work within the supported Draft 7 schema profile. - [Queues and Operations](https://arkoren.dev/docs/guides/asyncapi/queues-and-operations.md): Describe shared queue destinations and select the jobs each application produces or consumes. - [Bindings and Security](https://arkoren.dev/docs/guides/asyncapi/bindings-and-security.md): Describe broker endpoints, authentication requirements, and protocol bindings without changing runtime infrastructure. - [Serving Documentation](https://arkoren.dev/docs/guides/asyncapi/serving.md): Export messaging contract files or serve protected JSON with explicit snapshot, caching, and failure behavior. pkg.go.dev is the canonical Go API reference. Links identify library modules, not release or indexing availability; unpublished or unindexed modules may return not found. Local API Markdown and bulk API exports are retired. ## Core - [arkoren.dev/core](https://pkg.go.dev/arkoren.dev/core) ## Foundation - [arkoren.dev/foundation/certificate](https://pkg.go.dev/arkoren.dev/foundation/certificate) - [arkoren.dev/foundation/collection](https://pkg.go.dev/arkoren.dev/foundation/collection) - [arkoren.dev/foundation/key](https://pkg.go.dev/arkoren.dev/foundation/key) - [arkoren.dev/foundation/problem](https://pkg.go.dev/arkoren.dev/foundation/problem) - [arkoren.dev/foundation/query](https://pkg.go.dev/arkoren.dev/foundation/query) - [arkoren.dev/foundation/validate](https://pkg.go.dev/arkoren.dev/foundation/validate) ## Vendor drivers - [arkoren.dev/driver/aes](https://pkg.go.dev/arkoren.dev/driver/aes) - [arkoren.dev/driver/argon2](https://pkg.go.dev/arkoren.dev/driver/argon2) - [arkoren.dev/driver/aws](https://pkg.go.dev/arkoren.dev/driver/aws) - [arkoren.dev/driver/azure](https://pkg.go.dev/arkoren.dev/driver/azure) - [arkoren.dev/driver/bcrypt](https://pkg.go.dev/arkoren.dev/driver/bcrypt) - [arkoren.dev/driver/chacha20](https://pkg.go.dev/arkoren.dev/driver/chacha20) - [arkoren.dev/driver/cloudflare](https://pkg.go.dev/arkoren.dev/driver/cloudflare) - [arkoren.dev/driver/filesystem](https://pkg.go.dev/arkoren.dev/driver/filesystem) - [arkoren.dev/driver/gcp](https://pkg.go.dev/arkoren.dev/driver/gcp) - [arkoren.dev/driver/launchdarkly](https://pkg.go.dev/arkoren.dev/driver/launchdarkly) - [arkoren.dev/driver/mailgun](https://pkg.go.dev/arkoren.dev/driver/mailgun) - [arkoren.dev/driver/mcp](https://pkg.go.dev/arkoren.dev/driver/mcp) - [arkoren.dev/driver/meilisearch](https://pkg.go.dev/arkoren.dev/driver/meilisearch) - [arkoren.dev/driver/mollie](https://pkg.go.dev/arkoren.dev/driver/mollie) - [arkoren.dev/driver/mqtt](https://pkg.go.dev/arkoren.dev/driver/mqtt) - [arkoren.dev/driver/mysql](https://pkg.go.dev/arkoren.dev/driver/mysql) - [arkoren.dev/driver/nats](https://pkg.go.dev/arkoren.dev/driver/nats) - [arkoren.dev/driver/oauth](https://pkg.go.dev/arkoren.dev/driver/oauth) - [arkoren.dev/driver/openai](https://pkg.go.dev/arkoren.dev/driver/openai) - [arkoren.dev/driver/openfeature](https://pkg.go.dev/arkoren.dev/driver/openfeature) - [arkoren.dev/driver/opensearch](https://pkg.go.dev/arkoren.dev/driver/opensearch) - [arkoren.dev/driver/otel](https://pkg.go.dev/arkoren.dev/driver/otel) - [arkoren.dev/driver/paypal](https://pkg.go.dev/arkoren.dev/driver/paypal) - [arkoren.dev/driver/postgres](https://pkg.go.dev/arkoren.dev/driver/postgres) - [arkoren.dev/driver/postmark](https://pkg.go.dev/arkoren.dev/driver/postmark) - [arkoren.dev/driver/prometheus](https://pkg.go.dev/arkoren.dev/driver/prometheus) - [arkoren.dev/driver/rabbitmq](https://pkg.go.dev/arkoren.dev/driver/rabbitmq) - [arkoren.dev/driver/redis](https://pkg.go.dev/arkoren.dev/driver/redis) - [arkoren.dev/driver/resend](https://pkg.go.dev/arkoren.dev/driver/resend) - [arkoren.dev/driver/restate](https://pkg.go.dev/arkoren.dev/driver/restate) - [arkoren.dev/driver/smtp](https://pkg.go.dev/arkoren.dev/driver/smtp) - [arkoren.dev/driver/sqlite](https://pkg.go.dev/arkoren.dev/driver/sqlite) - [arkoren.dev/driver/stripe](https://pkg.go.dev/arkoren.dev/driver/stripe) - [arkoren.dev/driver/temporal](https://pkg.go.dev/arkoren.dev/driver/temporal) - [arkoren.dev/driver/vault](https://pkg.go.dev/arkoren.dev/driver/vault) - [arkoren.dev/driver/webpush](https://pkg.go.dev/arkoren.dev/driver/webpush) ## Optional - [Bulk guides archive](https://arkoren.dev/docs/guides/llms-full.txt): offline indexing or deliberate large-context use - [Guides index](https://arkoren.dev/docs/guides/llms.txt) - [API module catalog](https://arkoren.dev/docs/api/llms.txt) - [Changelog](https://arkoren.dev/changelog): published module versions and release notes