> Part of the walkerOS documentation. Project overview and full index: <https://www.walkeros.io/llms.txt>

# Server sources

Server sources accept HTTP requests containing walkerOS events and forward them to the collector. Choose based on your deployment environment.

## Available sources[​](#available-sources "Direct link to Available sources")

| Source                                                                    | Platform        | Use Case                                   |
| ------------------------------------------------------------------------- | --------------- | ------------------------------------------ |
| [Express](https://www.walkeros.io/docs/sources/server/express.md)         | Node.js         | Standalone server or existing Express app  |
| [Fetch](https://www.walkeros.io/docs/sources/server/fetch.md)             | Edge/Serverless | Cloudflare Workers, Vercel Edge, Deno, Bun |
| [AWS Lambda](https://www.walkeros.io/docs/sources/server/aws.md)          | AWS             | API Gateway, Lambda Function URLs          |
| [GCP Cloud Functions](https://www.walkeros.io/docs/sources/server/gcp.md) | Google Cloud    | Cloud Functions HTTP triggers              |
| [AWS SQS](https://www.walkeros.io/docs/sources/server/sqs.md)             | AWS             | Queue consumer, decoupled ingestion        |
| [Google Pub/Sub](https://www.walkeros.io/docs/sources/server/pubsub.md)   | Google Cloud    | Pull subscriber or push webhook            |

## Choosing a source[​](#choosing-a-source "Direct link to Choosing a source")

**Express** - Best for traditional Node.js deployments, Docker containers, or when you need full control over the HTTP server.

**Fetch** - Best for edge computing and serverless platforms that support the Web Standard Fetch API.

**AWS Lambda** - Best for AWS-native deployments with API Gateway or Lambda Function URLs.

**GCP Cloud Functions** - Best for Google Cloud deployments using Cloud Functions.

## Common features[​](#common-features "Direct link to Common features")

Server sources come in two shapes, and the shared features differ by shape.

**HTTP sources** (Express, Fetch, AWS Lambda, GCP Cloud Functions) receive inbound requests and all provide:

* **JSON event ingestion** (POST), with one shared [event envelope](https://www.walkeros.io/docs/sources/envelope.md)
* **Pixel tracking** (GET with 1x1 GIF response)
* **CORS support** (configurable)
* **Health checks** (liveness/readiness endpoints)
* One shared [request scope](https://www.walkeros.io/docs/sources/scope.md), so a `config.ingest` mapping resolves the same on each of them

**Queue consumers** (AWS SQS, Google Pub/Sub pull) read from a queue instead of serving requests. They have no HTTP surface, so none of the request-shaped features above apply, and `config.ingest` does not either: there is no request to adapt. Retries and dead-lettering stay with the queue.
