# Strata.js > Microservices made simple. A fast, opinionated microservice framework with pluggable backends and an Express-inspired API. ## Table of Contents ### AI - [LLM Documentation](/ai/llms-txt.md): Auto-generated llms.txt and llms-full.txt files that provide LLM-friendly documentation for AI coding tools. - [MCP Server](/ai/mcp-server.md): MCP server that lets AI coding tools discover, inspect, and call running Strata services via Redis for local development. ### Concepts - [Why Strata](/concepts/why-strata.md): Why Strata.js replaces REST with message queues and how its Express-like API makes the transition familiar. - [Architecture](/concepts/architecture.md): How Strata organizes services into a hierarchy of services, contexts, and operations with pluggable backends. - [Middleware Model](/concepts/middleware-model.md): How Strata's three-hook middleware system (beforeRequest, success, failure) intercepts and modifies requests and responses. - [The Protocol](/concepts/the-protocol.md): The language-agnostic JSON envelope protocol that defines request and response message structure on the wire. ### Getting Started - [Quick Start](/getting-started/quick-start.md): Get a Strata service running in 5 minutes with Redis and a minimal code example. - [Your First Service](/getting-started/your-first-service.md): Build a realistic Strata service with multiple contexts, middleware, YAML configuration, and service-to-service calls. - [Configuration](/getting-started/configuration.md): How to configure StrataService and StrataClient using config objects, environment variables, or the config utility. ### Core API - [Application (StrataService)](/core-api/application.md): API reference for the StrataService class, the top-level object that manages backends, contexts, and middleware. - [Context (StrataContext)](/core-api/context.md): API reference for the StrataContext class, which groups related operations like an Express Router. - [Envelope Types](/core-api/envelope.md): TypeScript interfaces for MessageEnvelope, RequestEnvelope, PostEnvelope, and ResponseEnvelope wire types. - [Backends](/core-api/backends.md): Built-in backend implementations (Redis Lists, Redis Streams, In-Memory) and how to configure them. - [Client (StrataClient)](/core-api/client.md): API reference for the StrataClient class, which sends requests, posts, and service commands to Strata services. - [Request (StrataRequest)](/core-api/request.md): API reference for the StrataRequest class, which carries request data, response data, and lifecycle methods. ### Guides - [Using Middleware](/guides/using-middleware.md): How to install, register, configure, and order middleware at the service, context, and operation levels. - [Writing Middleware](/guides/writing-middleware.md): How to create custom middleware by implementing the OperationMiddleware interface with beforeRequest, success, and failure hooks. - [Using a Custom Backend](/guides/using-custom-backends.md): How to register and configure a third-party or custom backend implementation with your Strata service or client. - [Writing a Custom Backend](/guides/writing-custom-backends.md): How to build a custom backend by extending BaseStrataBackend for any messaging system (AMQP, Kafka, gRPC, etc.). - [Service Commands](/guides/service-commands.md): How to send runtime commands to running services for concurrency tuning, graceful shutdown, and service inspection. - [Envelope Validation](/guides/envelope-validation.md): How Strata's built-in envelope validation catches malformed messages at the transport layer with near-zero overhead. - [Migrating from v1 to v2](/guides/migration-v1-to-v2.md): Step-by-step guide to migrating from Strata v1 to v2, covering all breaking changes and their replacements. ### Middleware - [Middleware Packages](/middleware.md): Overview of first-party Strata middleware packages for caching, message logging, and payload validation. - [Cache Middleware](/middleware/cache.md): Response caching middleware with memory, Redis, and custom store support for skipping repeated operation handler calls. - [Message Logging Middleware](/middleware/message-logging.md): Middleware that logs request and response envelopes to a monitoring service group for debugging and observability. - [Payload Validation Middleware](/middleware/payload-validation.md): Middleware that validates request payloads using AJV (JSON Schema) or Zod before they reach operation handlers. ### Utilities - [Utilities](/utilities.md): Overview of standalone Strata utility packages for configuration loading and structured logging. - [Config](/utilities/config.md): Configuration loader utility supporting YAML/JSON files, environment variable substitution, and file includes. - [Logging](/utilities/logging.md): Structured logging utility wrapping pino with a console.*-style API for multi-argument log messages. ### Tools - [Tools](/tools.md): Overview of standalone Strata tools for HTTP bridging, message monitoring, and service management. - [RPC Bridge](/tools/rpc-bridge.md): HTTP and WebSocket bridge that exposes Strata services to browsers, mobile apps, and external consumers. - [Queue Monitor](/tools/queue-monitor.md): A Strata service that captures all messages and writes them to Elasticsearch, Logstash, or the console for observability. - [Service Tools](/tools/service-tools.md): Web UI for discovering and calling Strata services with a JSON payload editor, saved environments, and auth support.