Catalog PyPI
PACKAGE EXPLORERView in registry

absurd

PyPI

A Python client for the Absurd SQL-based durable execution workflow system

databasedurable-executionpostgresqlworkflow
Versions collected1
Direct dependencies5From release 0.1.0
Last observed20 Oct, 17:44 UTC

README

Version 0.1.0 documentation

WARNING:

DEPRECATED: This package is deprecated and is no longer maintained. Please consider using alternative solutions for your workflow management needs.

Absurd Python Client

A Python client for the Absurd SQL-based durable execution workflow system. This library provides a Python interface to interact with Absurd's PostgreSQL-based task queue and workflow engine.

Installation

pip install absurd

Quick Start

import psycopg
from absurd_client import AbsurdClient

# Create a client instance
client = AbsurdClient(queue_name="my_queue")

# Connect to your PostgreSQL database and spawn a task
with psycopg.connect("your_connection_string") as conn:
    # Spawn a new task
    task_id, run_id, workflow_run_id = client.spawn_task(
        conn=conn,
        task_name="process_data",
        params={"input": "data"}
    )

    print(f"Spawned task: {task_id}")

    # Claim and process tasks
    claimed_tasks = client.claim_task(conn)
    for task_data in claimed_tasks:
        run_id, task_id, attempt, task_name, params, *_ = task_data

        try:
            # Process the task
            result = {"processed": params}
            
            # Mark as completed
            client.complete_task(conn, run_id, result)
            print(f"Task {task_id} completed successfully")
        except Exception as e:
            # Mark as failed
            client.fail_task(conn, run_id, str(e))
            print(f"Task {task_id} failed: {e}")

Highway DSL Integration

The highway-dsl package provides a Python-based domain-specific language for defining complex workflows that fully supports Absurd:

from highway_dsl import WorkflowBuilder, RetryPolicy
from datetime import timedelta

# Create a workflow with Highway DSL
workflow = (
    WorkflowBuilder("data_pipeline")
    .task("extract", "etl.extract_data", result_key="raw_data")
    .task("transform", "etl.transform_data", args=["{{raw_data}}"], result_key="transformed_data")
    .task("load", "etl.load_data", args=["{{transformed_data}}"])
    .build()
)

# Export to YAML for use with Absurd
print(workflow.to_yaml())

Features

  • Task queuing and processing
  • Event-driven workflow coordination
  • Checkpoint-based state management
  • Retry strategies and failure handling
  • Workflow run tracking
  • Connection pooling for production environments
  • Support for complex workflow patterns

Configuration

The client supports the following environment variables:

  • ABSURD_DEFAULT_QUEUE: Default queue name (default: absurd_default)
  • ABSURD_WORKER_ID: Default worker ID (default: absurd_worker_1)

Support

For support, please open an issue in the GitHub repository.

DISCLAIMER

This package has no affiliation with the original Absurd project or its maintainers. It is an independent implementation designed to work with the Absurd system. Use at your own risk. Also this package is not approved or endorsed by the original Absurd project or its maintainers. I built this as part of HIGHWAY workflow engine, but decided not to use Absurd in the end due to various limitations and issues I encountered in its design and implementation.

Downloads & popularity

2downloads
1-day window · source-reported counts19 Oct 2026
54270
2026-07-23: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-23–2026-07-232026-07-27: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-27–2026-07-272026-07-28: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-28–2026-07-282026-07-29: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-29–2026-07-292026-07-30: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-30–2026-07-302026-07-31: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-07-31–2026-07-312026-08-01: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-01–2026-08-012026-08-02: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-02–2026-08-022026-08-03: 12 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-03–2026-08-032026-08-04: 9 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-04–2026-08-042026-08-06: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-06–2026-08-062026-08-09: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-09–2026-08-092026-08-10: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-10–2026-08-102026-08-11: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-11–2026-08-112026-08-13: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-13–2026-08-132026-08-14: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-14–2026-08-142026-08-17: 10 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-17–2026-08-172026-08-18: 54 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-18–2026-08-182026-08-19: 8 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-19–2026-08-192026-08-20: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-20–2026-08-202026-08-23: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-23–2026-08-232026-08-24: 18 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-24–2026-08-242026-08-25: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-25–2026-08-252026-08-26: 10 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-26–2026-08-262026-08-28: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-28–2026-08-282026-08-31: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-08-31–2026-08-312026-09-01: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-01–2026-09-012026-09-03: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-03–2026-09-032026-09-05: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-05–2026-09-052026-09-06: 10 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-06–2026-09-062026-09-07: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-07–2026-09-072026-09-09: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-09–2026-09-092026-09-10: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-10–2026-09-102026-09-12: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-12–2026-09-122026-09-18: 15 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-18–2026-09-182026-09-19: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-19–2026-09-192026-09-20: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-20–2026-09-202026-09-21: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-21–2026-09-212026-09-23: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-23–2026-09-232026-09-25: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-25–2026-09-252026-09-26: 4 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-26–2026-09-262026-09-27: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-27–2026-09-272026-09-28: 10 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-28–2026-09-282026-09-29: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-29–2026-09-292026-09-30: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-09-30–2026-09-302026-10-01: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-01–2026-10-012026-10-02: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-02–2026-10-022026-10-03: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-03–2026-10-032026-10-04: 10 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-04–2026-10-042026-10-05: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-05–2026-10-052026-10-06: 15 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-06–2026-10-062026-10-07: 6 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-07–2026-10-072026-10-08: 9 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-08–2026-10-082026-10-09: 5 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-09–2026-10-092026-10-10: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-10–2026-10-102026-10-11: 8 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-11–2026-10-112026-10-12: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-12–2026-10-122026-10-13: 4 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-13–2026-10-132026-10-15: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-15–2026-10-152026-10-17: 1 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-17–2026-10-172026-10-18: 3 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-18–2026-10-182026-10-19: 2 · observed 2026-10-20T20:07:40.7334176Z · period 2026-10-19–2026-10-19
23 Jul19 Oct

pypistats · 62 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-19 – 2026-10-1922026-10-20T20:07:40.7334176Z
2026-10-18 – 2026-10-1832026-10-20T20:07:40.7334176Z
2026-10-17 – 2026-10-1712026-10-20T20:07:40.7334176Z
2026-10-15 – 2026-10-1512026-10-20T20:07:40.7334176Z
2026-10-13 – 2026-10-1342026-10-20T20:07:40.7334176Z
2026-10-12 – 2026-10-1222026-10-20T20:07:40.7334176Z
2026-10-11 – 2026-10-1182026-10-20T20:07:40.7334176Z
2026-10-10 – 2026-10-1032026-10-20T20:07:40.7334176Z
2026-10-09 – 2026-10-0952026-10-20T20:07:40.7334176Z
2026-10-08 – 2026-10-0892026-10-20T20:07:40.7334176Z
2026-10-07 – 2026-10-0762026-10-20T20:07:40.7334176Z
2026-10-06 – 2026-10-06152026-10-20T20:07:40.7334176Z
2026-10-05 – 2026-10-0522026-10-20T20:07:40.7334176Z
2026-10-04 – 2026-10-04102026-10-20T20:07:40.7334176Z
2026-10-03 – 2026-10-0322026-10-20T20:07:40.7334176Z
2026-10-02 – 2026-10-0212026-10-20T20:07:40.7334176Z
2026-10-01 – 2026-10-0112026-10-20T20:07:40.7334176Z
2026-09-30 – 2026-09-3052026-10-20T20:07:40.7334176Z
2026-09-29 – 2026-09-2932026-10-20T20:07:40.7334176Z
2026-09-28 – 2026-09-28102026-10-20T20:07:40.7334176Z
2026-09-27 – 2026-09-2752026-10-20T20:07:40.7334176Z
2026-09-26 – 2026-09-2642026-10-20T20:07:40.7334176Z
2026-09-25 – 2026-09-2552026-10-20T20:07:40.7334176Z
2026-09-23 – 2026-09-2312026-10-20T20:07:40.7334176Z
2026-09-21 – 2026-09-2122026-10-20T20:07:40.7334176Z
2026-09-20 – 2026-09-2012026-10-20T20:07:40.7334176Z
2026-09-19 – 2026-09-1922026-10-20T20:07:40.7334176Z
2026-09-18 – 2026-09-18152026-10-20T20:07:40.7334176Z
2026-09-12 – 2026-09-1212026-10-20T20:07:40.7334176Z
2026-09-10 – 2026-09-1012026-10-20T20:07:40.7334176Z
2026-09-09 – 2026-09-0922026-10-20T20:07:40.7334176Z
2026-09-07 – 2026-09-0722026-10-20T20:07:40.7334176Z
2026-09-06 – 2026-09-06102026-10-20T20:07:40.7334176Z
2026-09-05 – 2026-09-0512026-10-20T20:07:40.7334176Z
2026-09-03 – 2026-09-0312026-10-20T20:07:40.7334176Z
2026-09-01 – 2026-09-0132026-10-20T20:07:40.7334176Z
2026-08-31 – 2026-08-3122026-10-20T20:07:40.7334176Z
2026-08-28 – 2026-08-2812026-10-20T20:07:40.7334176Z
2026-08-26 – 2026-08-26102026-10-20T20:07:40.7334176Z
2026-08-25 – 2026-08-2512026-10-20T20:07:40.7334176Z
2026-08-24 – 2026-08-24182026-10-20T20:07:40.7334176Z
2026-08-23 – 2026-08-2332026-10-20T20:07:40.7334176Z
2026-08-20 – 2026-08-2012026-10-20T20:07:40.7334176Z
2026-08-19 – 2026-08-1982026-10-20T20:07:40.7334176Z
2026-08-18 – 2026-08-18542026-10-20T20:07:40.7334176Z
2026-08-17 – 2026-08-17102026-10-20T20:07:40.7334176Z
2026-08-14 – 2026-08-1452026-10-20T20:07:40.7334176Z
2026-08-13 – 2026-08-1322026-10-20T20:07:40.7334176Z
2026-08-11 – 2026-08-1112026-10-20T20:07:40.7334176Z
2026-08-10 – 2026-08-1022026-10-20T20:07:40.7334176Z
2026-08-09 – 2026-08-0952026-10-20T20:07:40.7334176Z
2026-08-06 – 2026-08-0612026-10-20T20:07:40.7334176Z
2026-08-04 – 2026-08-0492026-10-20T20:07:40.7334176Z
2026-08-03 – 2026-08-03122026-10-20T20:07:40.7334176Z
2026-08-02 – 2026-08-0232026-10-20T20:07:40.7334176Z
2026-08-01 – 2026-08-0112026-10-20T20:07:40.7334176Z
2026-07-31 – 2026-07-3122026-10-20T20:07:40.7334176Z
2026-07-30 – 2026-07-3012026-10-20T20:07:40.7334176Z
2026-07-29 – 2026-07-2912026-10-20T20:07:40.7334176Z
2026-07-28 – 2026-07-2812026-10-20T20:07:40.7334176Z
2026-07-27 – 2026-07-2722026-10-20T20:07:40.7334176Z
2026-07-23 – 2026-07-2332026-10-20T20:07:40.7334176Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.030 Nov 20255

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:44 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:229a056d4c1d3a28c4f3af6d7dc26ebd47a99e82e89a9168efae46a9579433c2