Skip to main content

Distributed Task Framework

Project description

Task Lattice

Distributed Task Framework for distributing work across workers

CI Package version Supported Python versions


🚀 Key Features

Task Lattice's key features include:

  • Broker Support - Following brokers are supported:
    • Solace
    • Kafka (Day 2)
  • Queues - Multiple queue/priority queue support
  • Async - Async tasks supported incl. execution in event loop
  • Customisation - Extensive customisation of queue, worker and tasks including:
    • Automated task retry
    • Dead letter queues
    • Worker concurrency
    • Queue capacity
    • ...
  • Minimal code - Minimal code is required to use task lattice
  • DAG support - Supports DAG (directed acyclical graph) workflow execution
  • Monitoring - Supports live monitoring of the queues, workers, tasks

ℹ️ Installation

# Using pip
pip install task-lattice

# Using poetry
poetry add task-lattice

# Using uv
uv add task-lattice

📦 Dependencies

TBD


📘 How to use

Step 1 - Define your Task Lattice application

from task_lattice import TaskLattice, SolaceConnectionDetails, QueueDetails

app = TaskLattice(
    SolaceConnectionDetails(host="localhost", port=55555, vpn="default", username="admin", password="admin"),
    TaskLatticeConfig(
      queues=[
        QueueConfig(name="default", topic="tasks.default"),
      ], 
      default_queue="default"
    ),
)

Step 2 - Define your tasks:

@app.task
def sync_function():
  ...

@app.task
async def async_function():
  ...

Step 3 - Enqueue a task:

task = sync_function.create()

app.enqueue(task)

Step 4 - Run a worker to process tasks:

app.start_worker()

📘 Logging

TBD


📘 Extensions

TBD


ℹ️ License

This project is licensed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

task_lattice-0.0.1a0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

task_lattice-0.0.1a0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file task_lattice-0.0.1a0.tar.gz.

File metadata

  • Download URL: task_lattice-0.0.1a0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for task_lattice-0.0.1a0.tar.gz
Algorithm Hash digest
SHA256 f79df7ab0effea761e4439f0c0226d6022919784e2573f24f632ff66ae4664f8
MD5 45d7dd87fb3bc54397f8c7c1ed900052
BLAKE2b-256 de22f7e876cfdd5a96ebcbbcaaf31cc9909a223e57f751b57f37cb3c660fa94d

See more details on using hashes here.

File details

Details for the file task_lattice-0.0.1a0-py3-none-any.whl.

File metadata

  • Download URL: task_lattice-0.0.1a0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for task_lattice-0.0.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 14d4b09c21412a918f6a95374192bcd7a20a385f72778e54e6301656a520109e
MD5 82c0b05b4982974f278bc4e2434c5137
BLAKE2b-256 87e980a295e95b3ef387433a1fd997b52051790d70c2d3469713835e1d06d639

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page