Liking cljdoc? Tell your friends :D

Goose: The sidekick for Clojure

Simple, Reliable & Scalable background processing library for Clojure.

Features

Simplicity is Complicated. We've strived to make Goose as simple as possible.

  • A functional interface
  • Reliable - Code/Hardware/Network failure won't cause data loss
  • Cloud-Native Architecture
  • Lean, Expressive, Transparent & Extensible
  • Plug-and-play, minimal setup with sane defaults
  • Concurrency & Parallelism using Java thread-pools
  • Unit & Integration Tests 🙂

Getting Started

Note: Goose will be ready for production usage after completion of Project 0.2

Client

(ns my-app
  (:require [goose.client :as c]))

(defn my-background-fn
  [arg1 arg2]
  (println "my-background-fn called with" arg1 arg2))

(c/perform-async c/default-opts `my-background-fn "foo" :bar)
(c/perform-in-sec c/default-opts 3600 `my-background-fn "scheduled" 123)

Worker

(ns my-worker
  (:require [goose.worker :as w]))

(let [worker (w/start w/default-opts)]
  ; ... wait for SIGINT or SIGTERM ...
  (w/stop worker))

Custom Configuration

Goose provisions custom configuration for Message-Broker, Priority Queues, Scheduling, Error-Handling & Retrying, Logging, & Worker Config. Details can be found in the respective Wikis (awaiting completion).

Why the name "Goose"?

🦆 Logo loading...

Goose library is named after Nick 'Goose' Bradshaw, the sidekick to Captain Pete 'Maverick' Mitchell in Top Gun.

License

Please see LICENSE for licensing details.

Can you improve this documentation? These fine people already did:
akshat & Akshat
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close