Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 52 additions & 12 deletions docs/content/docs/java/guides/core/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,55 @@ description: "The building blocks of every Java taskito application."

The building blocks of every taskito application.

| Guide | Description |
|---|---|
| [Tasks](/java/guides/core/tasks) | Describe tasks with `Task.of()`, configure retries, timeouts, and options |
| [Queues & Priority](/java/guides/core/queues) | Named queues, priority levels, and routing |
| [Workers](/java/guides/core/workers) | Start workers, control concurrency, graceful shutdown |
| [Execution Models](/java/guides/core/execution-model) | How tasks move from enqueue to completion |
| [Enqueue options](/java/guides/core/enqueue-options) | Per-job delay, priority, uniqueness, and metadata |
| [Batching](/java/guides/core/batching) | Producer-side `Batcher`/`enqueueMany` and worker-side `batchSize` |
| [Predicates](/java/guides/core/predicates) | Gate an enqueue on a runtime condition |
| [Scheduling](/java/guides/core/scheduling) | Periodic tasks with cron expressions |
| [Cancellation](/java/guides/core/cancellation) | Cancel queued and in-flight jobs |
| [Streaming partial results](/java/guides/core/streaming) | Emit progress from a running task |
<Cards>
<Card
title="Tasks"
href="/java/guides/core/tasks"
description="Describe tasks with Task.of(), configure retries, timeouts, and options"
/>
<Card
title="Queues & Priority"
href="/java/guides/core/queues"
description="Named queues, priority levels, and routing"
/>
<Card
title="Workers"
href="/java/guides/core/workers"
description="Start workers, control concurrency, graceful shutdown"
/>
<Card
title="Execution Models"
href="/java/guides/core/execution-model"
description="How tasks move from enqueue to completion"
/>
<Card
title="Enqueue options"
href="/java/guides/core/enqueue-options"
description="Per-job delay, priority, uniqueness, and metadata"
/>
<Card
title="Batching"
href="/java/guides/core/batching"
description="Producer-side Batcher/enqueueMany and worker-side batchSize"
/>
<Card
title="Predicates"
href="/java/guides/core/predicates"
description="Gate an enqueue on a runtime condition"
/>
<Card
title="Scheduling"
href="/java/guides/core/scheduling"
description="Periodic tasks with cron expressions"
/>
<Card
title="Cancellation"
href="/java/guides/core/cancellation"
description="Cancel queued and in-flight jobs"
/>
<Card
title="Streaming partial results"
href="/java/guides/core/streaming"
description="Emit progress from a running task"
/>
</Cards>
28 changes: 22 additions & 6 deletions docs/content/docs/java/guides/extensibility/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,25 @@ description: "Extend the Java SDK at every stage of the task lifecycle."

Extend taskito with custom behavior at every stage of the task lifecycle.

| Guide | Description |
|---|---|
| [Events](/java/guides/extensibility/events) | Subscribe to job outcome events on the worker |
| [Middleware](/java/guides/extensibility/middleware) | Wrap task execution with before/after/error and outcome hooks |
| [Webhooks](/java/guides/extensibility/webhooks) | Push signed notifications to external services |
| [Pluggable Serializers](/java/guides/extensibility/serializers) | Custom payload serialization — MessagePack, codecs, encryption |
<Cards>
<Card
title="Events"
href="/java/guides/extensibility/events"
description="Subscribe to job outcome events on the worker"
/>
<Card
title="Middleware"
href="/java/guides/extensibility/middleware"
description="Wrap task execution with before/after/error and outcome hooks"
/>
<Card
title="Webhooks"
href="/java/guides/extensibility/webhooks"
description="Push signed notifications to external services"
/>
<Card
title="Pluggable Serializers"
href="/java/guides/extensibility/serializers"
description="Custom payload serialization — MessagePack, codecs, encryption"
/>
</Cards>
22 changes: 19 additions & 3 deletions docs/content/docs/java/guides/integrations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,25 @@ implementation("io.sentry:sentry:7.14.0") // contrib.SentryM

## Framework

- [Spring Boot](/java/guides/integrations/spring) — auto-configured `Taskito` bean from `taskito.*` properties.
<Cards>
<Card
title="Spring Boot"
href="/java/guides/integrations/spring"
description="auto-configured Taskito bean from taskito.* properties."
/>
</Cards>

## Observability

- [Micrometer](/java/guides/integrations/micrometer) — one `Observation` per execution: a timer plus a trace span.
- [Sentry](/java/guides/integrations/sentry) — capture handler exceptions and dead-letters.
<Cards>
<Card
title="Micrometer"
href="/java/guides/integrations/micrometer"
description="one Observation per execution: a timer plus a trace span."
/>
<Card
title="Sentry"
href="/java/guides/integrations/sentry"
description="capture handler exceptions and dead-letters."
/>
</Cards>
16 changes: 12 additions & 4 deletions docs/content/docs/java/guides/observability/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,18 @@ See what the queue is doing — counts, per-execution metrics, live workers,
per-job logs — and emit structured logs, all from the `Taskito` handle with no
extra service.

| Page | What it covers |
|---|---|
| [Monitoring](/java/guides/observability/monitoring) | Stats, per-execution metrics, worker heartbeats, Micrometer/Sentry pointers |
| [Logging](/java/guides/observability/logging) | The built-in leveled logger and per-job task logs — levels, pluggable sink |
<Cards>
<Card
title="Monitoring"
href="/java/guides/observability/monitoring"
description="Stats, per-execution metrics, worker heartbeats, Micrometer/Sentry pointers"
/>
<Card
title="Logging"
href="/java/guides/observability/logging"
description="The built-in leveled logger and per-job task logs — levels, pluggable sink"
/>
</Cards>

<Callout type="info">
Lifecycle [events](/java/guides/extensibility/events) and
Expand Down
76 changes: 62 additions & 14 deletions docs/content/docs/java/guides/operations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,65 @@ description: "Run the Java SDK reliably in production — deployment, scaling, i

Run taskito reliably in production.

| Guide | Description |
|---|---|
| [Backends](/java/guides/operations/backends) | SQLite, Postgres, and Redis — setup and trade-offs |
| [Job Management](/java/guides/operations/inspection) | Inspect, cancel, replay, and clean up jobs |
| [Dashboard](/java/guides/operations/dashboard) | Serve the bundled web dashboard and its REST API |
| [SSO (OAuth & OIDC)](/java/guides/operations/sso) | Google, GitHub, and OIDC sign-in for the dashboard |
| [Mesh Scheduling](/java/guides/operations/mesh) | Decentralized work-stealing across worker nodes |
| [Autoscaling](/java/guides/operations/autoscaling) | In-process thread autoscaling and the KEDA scaler endpoint |
| [CLI](/java/guides/operations/cli) | Operate the queue from the terminal |
| [Testing](/java/guides/operations/testing) | The in-memory backend and integration patterns |
| [Security](/java/guides/operations/security) | Signing, encryption, and dashboard auth |
| [Troubleshooting](/java/guides/operations/troubleshooting) | Diagnose stuck jobs and worker issues |
| [Deployment](/java/guides/operations/deployment) | Process model, packaging, and graceful shutdown |
| [GraalVM Native Image](/java/guides/operations/graalvm) | Compile applications to a native binary |
<Cards>
<Card
title="Backends"
href="/java/guides/operations/backends"
description="SQLite, Postgres, and Redis — setup and trade-offs"
/>
<Card
title="Job Management"
href="/java/guides/operations/inspection"
description="Inspect, cancel, replay, and clean up jobs"
/>
<Card
title="Dashboard"
href="/java/guides/operations/dashboard"
description="Serve the bundled web dashboard and its REST API"
/>
<Card
title="SSO (OAuth & OIDC)"
href="/java/guides/operations/sso"
description="Google, GitHub, and OIDC sign-in for the dashboard"
/>
<Card
title="Mesh Scheduling"
href="/java/guides/operations/mesh"
description="Decentralized work-stealing across worker nodes"
/>
<Card
title="Autoscaling"
href="/java/guides/operations/autoscaling"
description="In-process thread autoscaling and the KEDA scaler endpoint"
/>
<Card
title="CLI"
href="/java/guides/operations/cli"
description="Operate the queue from the terminal"
/>
<Card
title="Testing"
href="/java/guides/operations/testing"
description="The in-memory backend and integration patterns"
/>
<Card
title="Security"
href="/java/guides/operations/security"
description="Signing, encryption, and dashboard auth"
/>
<Card
title="Troubleshooting"
href="/java/guides/operations/troubleshooting"
description="Diagnose stuck jobs and worker issues"
/>
<Card
title="Deployment"
href="/java/guides/operations/deployment"
description="Process model, packaging, and graceful shutdown"
/>
<Card
title="GraalVM Native Image"
href="/java/guides/operations/graalvm"
description="Compile applications to a native binary"
/>
</Cards>
58 changes: 47 additions & 11 deletions docs/content/docs/java/guides/reliability/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,50 @@ description: "Harden your Java task queue for production workloads."

Harden your task queue for production workloads.

| Guide | Description |
|---|---|
| [Error Handling](/java/guides/reliability/error-handling) | Task failure lifecycle, error inspection, the exception hierarchy |
| [Delivery Guarantees](/java/guides/reliability/guarantees) | At-least-once delivery and exactly-once patterns |
| [Retries](/java/guides/reliability/retries) | Automatic retries with exponential backoff |
| [Timeouts](/java/guides/reliability/timeouts) | Bound task runtime per execution attempt |
| [Idempotency](/java/guides/reliability/idempotency) | Deduplicate enqueues with unique keys |
| [Rate Limiting](/java/guides/reliability/rate-limiting) | Throttle and defer enqueues with gates |
| [Concurrency](/java/guides/reliability/concurrency) | Size and autoscale the worker's handler pool |
| [Dead-letter queue](/java/guides/reliability/dead-letter) | Capture and replay exhausted jobs |
| [Distributed Locking](/java/guides/reliability/locks) | Mutual exclusion across workers with database-backed locks |
<Cards>
<Card
title="Error Handling"
href="/java/guides/reliability/error-handling"
description="Task failure lifecycle, error inspection, the exception hierarchy"
/>
<Card
title="Delivery Guarantees"
href="/java/guides/reliability/guarantees"
description="At-least-once delivery and exactly-once patterns"
/>
<Card
title="Retries"
href="/java/guides/reliability/retries"
description="Automatic retries with exponential backoff"
/>
<Card
title="Timeouts"
href="/java/guides/reliability/timeouts"
description="Bound task runtime per execution attempt"
/>
<Card
title="Idempotency"
href="/java/guides/reliability/idempotency"
description="Deduplicate enqueues with unique keys"
/>
<Card
title="Rate Limiting"
href="/java/guides/reliability/rate-limiting"
description="Throttle and defer enqueues with gates"
/>
<Card
title="Concurrency"
href="/java/guides/reliability/concurrency"
description="Size and autoscale the worker's handler pool"
/>
<Card
title="Dead-letter queue"
href="/java/guides/reliability/dead-letter"
description="Capture and replay exhausted jobs"
/>
<Card
title="Distributed Locking"
href="/java/guides/reliability/locks"
description="Mutual exclusion across workers with database-backed locks"
/>
</Cards>
40 changes: 32 additions & 8 deletions docs/content/docs/java/guides/resources/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,38 @@ try (Taskito queue = Taskito.builder().sqlite("tasks.db").open()) {
}
```

| Page | What it covers |
|---|---|
| [Dependency injection](/java/guides/resources/dependency-injection) | `Taskito.resource()`, the five scopes, `Resources.use`, annotation-driven injection, teardown, metrics |
| [Configuration](/java/guides/resources/configuration) | The `resource()` overloads, choosing a scope, teardown, and `PoolConfig` tuning |
| [Enqueue interception](/java/guides/resources/interception) | `Interceptor` strategies and the `onEnqueue` hook — validate, rewrite, redirect, and reject jobs before serialization |
| [Resource proxies](/java/guides/resources/proxies) | Signed `ProxyRef`s for non-serializable values — HMAC signing, TTL, purpose binding, sessions |
| [Observability](/java/guides/resources/observability) | Reading `resourceMetrics()` — created/disposed/active counters |
| [Testing](/java/guides/resources/testing) | Registering stub resources with `InMemoryTaskito` |
<Cards>
<Card
title="Dependency injection"
href="/java/guides/resources/dependency-injection"
description="Taskito.resource(), the five scopes, Resources.use, annotation-driven injection, teardown, metrics"
/>
<Card
title="Configuration"
href="/java/guides/resources/configuration"
description="The resource() overloads, choosing a scope, teardown, and PoolConfig tuning"
/>
<Card
title="Enqueue interception"
href="/java/guides/resources/interception"
description="Interceptor strategies and the onEnqueue hook — validate, rewrite, redirect, and reject jobs before serialization"
/>
<Card
title="Resource proxies"
href="/java/guides/resources/proxies"
description="Signed ProxyRefs for non-serializable values — HMAC signing, TTL, purpose binding, sessions"
/>
<Card
title="Observability"
href="/java/guides/resources/observability"
description="Reading resourceMetrics() — created/disposed/active counters"
/>
<Card
title="Testing"
href="/java/guides/resources/testing"
description="Registering stub resources with InMemoryTaskito"
/>
</Cards>

## The five scopes

Expand Down
Loading