由 codecrumbs 出售

Hatchet is a distributed, fault-tolerant background task and workflow orchestration platform built on Postgres, offering DAGs, concurrency control, rate limiting, retries, and a real-time dashboard.
Hatchet is a self-hosted or cloud background task and durable workflow platform built on Postgres. It provides a task queue, real-time dashboard, observability, alerting, and a CLI in a single deployable unit. The typical buyer is a backend or full-stack team replacing Celery, BullMQ, or ad-hoc Redis queues with a production-grade, auditable workflow engine.
.claude/ - AI skill definitions for TUI view generation.github/ - CI/CD workflows, issue templates, PR templates, and Dependabot configapi/ - Go REST API server (v1): handlers, authn/authz middleware, OpenAPI specapi-contracts/ - OpenAPI/protobuf contract definitions shared across SDKsassets/ - Static brand assets (logos, images)cmd/ - Go binary entry points for the Hatchet server, engine, and CLIcontributing/ - Contributor guides and development setup docsexamples/ - Runnable example workflows in Go, Python, and TypeScriptfrontend/ - React/TypeScript dashboard app (Vite, TanStack Router/Query)hack/ - Dev tooling scripts (codegen, migrations, seed data)internal/ - Internal Go packages: engine, repository, services, telemetrypkg/ - Public Go packages: client, worker, workflow definitionssdks/ - First-party SDKs (TypeScript, Python, Ruby)sql/ - SQLC queries, Postgres migrations, and schema definitionsdocker-compose.yml - Full local stack (Postgres, engine, API, frontend)docker-compose.infra.yml - Infrastructure-only (Postgres, RabbitMQ)Taskfile.yaml - Task runner for codegen, lint, test, and migration targets# For integrating the TypeScript SDK (sdks/typescript)
npm install @hatchet-dev/typescript-sdk
# For the frontend dashboard (if embedding or extending it)
npm install @tanstack/react-query @tanstack/react-router react react-dom
# For API client usage in a Node.js backend
npm install @hatchet-dev/typescript-sdk dotenv
No native modules or pod install steps are required for Node.js/TypeScript usage. If running the full server stack locally, Docker and the Hatchet CLI are required:
curl -fsSL https://install.hatchet.run/install.sh | bash
hatchet server start
启动隔离沙箱并在服务器端直接运行 — 无需本地配置。
此版本的 Tetrees AI Review
This Ruby, TypeScript, Python, Go cli / script completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately.
Deterministic AVCP artifact review
管道 avcp-2026-08-04.1 · SHA-256 2ed248e172bad51d…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
审查日期 2026年8月4日
将此产品直接导入你的 AI IDE、网页构建器或云端 IDE。
将 Tetrees 连接到兼容的 AI IDE,列出你拥有的产品并获取已验证 ZIP,同时不会开放卖家上传权限。
暂无评价。
Sign in to join the discussion
Loading discussion…
source/ directory into your project root (e.g., ./hatchet-source/).cd hatchet-source
docker compose up -d
http://localhost:8080) under Settings > API Tokens..env:
HATCHET_CLIENT_TOKEN=<your-api-token>
HATCHET_CLIENT_HOST_PORT=localhost:7077
npm install @hatchet-dev/typescript-sdk dotenv
import Hatchet from '@hatchet-dev/typescript-sdk';
const hatchet = Hatchet.init();
tsconfig.json, ensure "moduleResolution": "bundler" or "node16" and "esModuleInterop": true.import { useNotifications } from '@/hooks/notifications';
function useNotifications(): {
notifications: Notification[];
isLoading: boolean;
}
Aggregates resource limit alerts, invite notifications, and onboarding prompts into a single sorted list. Use this hook in any top-level layout component that needs to surface system-level alerts to the user. The returned array is sorted descending by timestamp.
import { filterSpanTrees, FilteredSpanTree } from
'@/components/v1/cloud/observability/trace-search';
function filterSpanTrees(trees: SpanTree[], query: ParsedTraceQuery): FilteredSpanTree[];
Filters a set of distributed trace span trees against a structured query produced by parseTraceQuery. Use this when rendering trace search results in the observability dashboard to narrow down spans by status, duration, or service name without a server round-trip.
import { parseTraceQuery, ParsedTraceQuery } from
'@/components/v1/cloud/observability/trace-search';
function parseTraceQuery(input: string): ParsedTraceQuery;
Parses a free-text trace search string into a structured ParsedTraceQuery object. Feed the result directly into filterSpanTrees or use it to construct API query parameters. Use this when building custom trace search UIs on top of Hatchet's observability layer.
import { queries } from '@/lib/api';
// queries is an object of TanStack Query queryKey/queryFn factories
// e.g.: queries.workflows.list(tenantId)
The queries export from frontend/app/src/lib/api provides pre-built TanStack Query descriptors for every Hatchet REST endpoint. Pass these directly to useQuery or useSuspenseQuery to fetch workflows, runs, workers, and tenant data with correct cache keys and typing.
Register a simple task and trigger it from an Express route. The Hatchet worker picks it up durably, retrying on failure.
import Hatchet, { Context } from '@hatchet-dev/typescript-sdk';
import 'dotenv/config';
const hatchet = Hatchet.init();
// Define the workflow
const emailWorkflow = hatchet.workflow({
name: 'send-email',
steps: [
{
name: 'send',
run: async (ctx: Context) => {
const { to, subject } = ctx.workflowInput();
console.log(`Sending email to ${to}: ${subject}`);
// your SMTP logic here
return { sent: true };
},
},
],
});
// Start the worker (runs in a separate process or file)
async function startWorker() {
const worker = await hatchet.worker('email-worker');
await worker.registerWorkflow(emailWorkflow);
worker.start();
}
// Trigger the task from your API layer
async function triggerEmail(to: string, subject: string) {
await hatchet.admin.runWorkflow('send-email', { to, subject });
}
startWorker().catch(console.error);
Use the generated API client and TanStack Query inside a React component to list recent workflow runs for a tenant.
import { useQuery } from '@tanstack/react-query';
import { queries } from '@/lib/api';
interface Props {
tenantId: string;
}
export function WorkflowRunList({ tenantId }: Props) {
const { data, isLoading } = useQuery({
...queries.workflowRuns.list(tenantId, { limit: 20 }),
});
if (isLoading) return <p>Loading...</p>;
return (
<ul>
{data?.rows?.map((run) => (
<li key={run.metadata.id}>
{run.displayName} — {run.status}
</li>
))}
</ul>
);
}
Embed Hatchet's trace search UI into a custom observability page, wiring the query parser and span filter together.
import { useState } from 'react';
import {
TraceSearchInput,
parseTraceQuery,
filterSpanTrees,
} from '@/components/v1/cloud/observability/trace-search';
import type { FilteredSpanTree } from '@/components/v1/cloud/observability/trace-search';
interface Props {
spanTrees: any[];
}
export function CustomTraceSearch({ spanTrees }: Props) {
const [results, setResults] = useState<FilteredSpanTree[]>([]);
const handleSearch = (rawQuery: string) => {
const parsed = parseTraceQuery(rawQuery);
const filtered = filterSpanTrees(spanTrees, parsed);
setResults(filtered);
};
return (
<div>
<TraceSearchInput onSearch={handleSearch} />
<pre>{JSON.stringify(results, null, 2)}</pre>
</div>
);
}
.claude/ - Contains SKILL.md prompts that teach AI assistants how to scaffold new TUI views in the Hatchet dashboard..github/ - GitHub Actions workflows for Go/TS/Python SDK CI, release automation, lint, E2E tests, and OSV security scanning.api/ - Go HTTP server wiring: route registration, authn (session/cookie), authz (RBAC via Casbin YAML), and request handlers per resource type.api-contracts/ - Source-of-truth OpenAPI and protobuf definitions; drives code generation for all SDK clients.assets/ - SVG logos and marketing images referenced in the README and dashboard.cmd/ - main.go entry points for hatchet-engine, hatchet-api, and hatchet CLI binary.contributing/ - Local dev setup, architecture overview, and PR conventions for open-source contributors.examples/ - Self-contained runnable examples demonstrating common patterns (fan-out, DAGs, cron, durable sleep).frontend/ - Vite + React 18 dashboard: TanStack Router for routing, TanStack Query for data fetching, Tailwind for styling.hack/ - Shell and Go scripts for schema migration, protobuf codegen, and seeding local dev data.internal/ - Core engine logic: scheduler, dispatcher, event ingestion, ticker, repository layer (sqlc-generated), and gRPC services.pkg/ - The public-facing Go client and worker SDK imported by user applications.sdks/ - First-party client SDKs for TypeScript, Python, and Ruby with their own build/publish pipelines.sql/ - SQLC query files and numbered Postgres migration files; the authoritative schema source.docker-compose.yml - Composes all Hatchet services (Postgres, engine, API, frontend, RabbitMQ) for local development.Taskfile.yaml - Unified task runner: task generate, task migrate, task test, etc.HATCHET_CLIENT_TOKEN: The SDK throws at init time if the token env var is absent. Always load .env before importing the SDK (import 'dotenv/config' as the first line).HATCHET_CLIENT_HOST_PORT (default 7077, gRPC), not the dashboard HTTP port (8080). Set them independently."type": "commonjs", add "esModuleInterop": true and "allowSyntheticDefaultImports": true to tsconfig.json.@/): The dashboard source uses @/ aliased to frontend/app/src/. If copying components out, configure tsconfig.json paths and your bundler (Vite: resolve.alias) to match.docker compose up does not auto-migrate. Run task migrate or hatchet server migrate before starting the engine, or the API will return 500s on all routes.queries descriptors use the v5 object form ({ queryKey, queryFn }). Spread them with useQuery({ ...queries.x.y() }); do not pass them as positional arguments as in v4.I have dropped the Hatchet source repository into ./hatchet-source/ in my project.
I also have USAGE.md (the integration guide) in the same directory.
My project is a Node.js/TypeScript backend using Express and a React frontend
using TanStack Query v5.
Please help me integrate Hatchet step by step:
1. Read USAGE.md and the relevant files under hatchet-source/ to understand
the real exported APIs (do not invent any symbols).
2. Set up the Hatchet worker process that connects to a local Hatchet server
(docker compose up in hatchet-source/).
3. Define a background task workflow named "process-upload" that accepts
{ fileUrl: string } and logs the URL.
4. Trigger "process-upload" from my Express POST /upload route.
5. Add a React component that lists the last 10 workflow runs for my tenant,
using the `queries` factory from hatchet-source/frontend/app/src/lib/api.
6. Wire up environment variables (HATCHET_CLIENT_TOKEN, HATCHET_CLIENT_HOST_PORT)
using dotenv.
7. Show me the tsconfig.json changes needed for ESM interop and the @/ path alias.
Use only imports and symbols that appear in USAGE.md or the actual source files.
Hatchet is released under the MIT License. See source/LICENSE for the full text. Upstream repository and documentation: https://github.com/hatchet-dev/hatchet. Cloud-hosted version available at https://cloud.onhatchet.run.
This product’s unique contribution is clean room implementation of valuable code block into AVCP compatible standard.
完整安装指南与集成提示词将在购买后解锁。
Automation, Utilities & Developer Tools
免费