Liking cljdoc? Tell your friends :D

taoensso.carmine

Clojure Redis client & message queue.

taoensso.carmine.connections

Handles socket connection lifecycle.
Pool is implemented with Apache Commons pool.
Originally adapted from `redis-clojure`.

taoensso.carmine.locks

Alpha - subject to change.
Distributed lock implementation for Carmine.
Based on work by Ronen Narkis and Josiah Carlson.

Redis keys:
  * carmine:lock:<lock-name> -> ttl str, lock owner's UUID.

Ref. <http://goo.gl/5UalQ> for implementation details.

taoensso.carmine.message-queue

Carmine-backed Clojure message queue, v2.
All heavy lifting by Redis.

Uses an optimized message circle architecture that is simple, reliable,
and has pretty good throughput and latency.

See `mq-architecture.svg` in repo for diagram of architecture,
Ref. <http://antirez.com/post/250> for initial inspiration.

Message status e/o:
  nil                  - Not in queue or already GC'd
  :queued              - Awaiting handler
  :queued-with-backoff - Awaiting handler, but skip until backoff expired
  :locked              - Currently with handler
  :locked-with-requeue - Currently with handler, will requeue when done
  :done-awaiting-gc    - Finished handling, awaiting GC
  :done-with-backoff   - Finished handling, awaiting GC,
                         but skip until dedupe backoff expired
  :done-with-requeue   - Will requeue, but skip until dedupe backoff expired

Redis keys (all prefixed with `carmine:mq:<qname>:`):
  * messages      - hash: {mid mcontent} ; Message content
  * messages-rq   - hash: {mid mcontent} ; '' for requeues
  * lock-times    - hash: {mid lock-ms}  ; Optional mid-specific lock duration
  * lock-times-rq - hash: {mid lock-ms}  ; '' for requeues
  * udts          - hash: {mid  udt-first-enqueued}
  * locks         - hash: {mid    lock-expiry-time} ; Active locks
  * backoffs      - hash: {mid backoff-expiry-time} ; Active backoffs
  * nattempts     - hash: {mid attempt-count}
  * done          - mid set: awaiting gc, etc.
  * requeue       - mid set: awaiting requeue ; Deprecated

  * mids-ready    - list: mids for immediate handling     (push to left, pop from right)
  * mid-circle    - list: mids for maintenance processing (push to left, pop from right)
  * ndry-runs     - int: num times worker(s) have lapped queue w/o work to do

  * isleep-a      - list: 0/1 sentinel element for `interruptible-sleep`
  * isleep-b      - list: 0/1 sentinel element for `interruptible-sleep`

taoensso.carmine.ring

Carmine-backed Ring session store.

taoensso.carmine.tundra

Semi-automatic archival datastore layer for Carmine.
Use multiple Redis instances (recommended) or Redis databases for local key
namespacing.

Redis keys:
  * carmine:tundra:evictable - set, ks for which `ensure-ks` fail should throw

taoensso.carmine.tundra.carmine

Secondary Redis server DataStore implementation for Tundra.

No vars found in this namespace.

taoensso.carmine.tundra.disk

Simple disk-based DataStore implementation for Tundra.

taoensso.carmine.tundra.faraday

Faraday (DynamoDB) DataStore implementation for Tundra.

Use AWS Data Pipeline to setup scheduled backups of DynamoDB table(s) to S3
(there is a template pipeline for exactly this purpose).

taoensso.carmine.tundra.s3

AWS S3 (clj-aws-s3) DataStore implementation for Tundra.

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

× close