Liking cljdoc? Tell your friends :D

wagoe.audience.shell.service

Evaluation service for audience segments.

Implements IAudienceResolver with a hybrid SQL + predicate pipeline:

  1. Check L1 DB cache (via get-cached-with-ttl when TTL is known).
  2. Load definition from in-process registry, fall back to repository.
  3. Compile definition into {:sql-clauses [...] :predicates [...]}.
  4. If :compose present, resolve composed segments recursively.
  5. Phase 1 — SQL: query user IDs via IUserDataSource.query-users-sql.
  6. Phase 2 — predicates: load-users for candidates, filter in-process.
  7. Build SegmentResult.
  8. Cache result when cache + TTL are configured.
  9. Return result.

FC/IS boundary: this shell namespace is allowed to perform I/O.

Evaluation service for audience segments.

Implements IAudienceResolver with a hybrid SQL + predicate pipeline:

  1. Check L1 DB cache (via get-cached-with-ttl when TTL is known).
  2. Load definition from in-process registry, fall back to repository.
  3. Compile definition into {:sql-clauses [...] :predicates [...]}.
  4. If :compose present, resolve composed segments recursively.
  5. Phase 1 — SQL: query user IDs via IUserDataSource.query-users-sql.
  6. Phase 2 — predicates: load-users for candidates, filter in-process.
  7. Build SegmentResult.
  8. Cache result when cache + TTL are configured.
  9. Return result.

FC/IS boundary: this shell namespace is allowed to perform I/O.
raw docstring

create-audience-serviceclj

(create-audience-service {:keys [repository cache user-data-source]})

Create an AudienceService.

Args: opts - map with: :repository - IAudienceRepository (optional, for DB-stored definitions) :cache - AudienceCache (optional) :user-data-source - IUserDataSource (required)

Returns: AudienceService implementing IAudienceResolver

Create an AudienceService.

Args:
  opts - map with:
    :repository       - IAudienceRepository (optional, for DB-stored definitions)
    :cache            - AudienceCache (optional)
    :user-data-source - IUserDataSource (required)

Returns:
  AudienceService implementing IAudienceResolver
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close