telemere/wiki/2-Architecture.md
Peter Taoussanis 824f8e3d53 [doc] Rename "signal filters" -> "call filters", etc.
The new terminology hopefully makes the distinction clearer
between call filters and handler filters, etc.
2025-02-27 12:45:01 +01:00

1.1 KiB

Telemere's key function is to help:

  1. Capture information in your running Clojure/Script programs, and
  2. Facilitate processing of that information to support insight.

Its basic tools:

  1. Signal creators to conditionally create signal maps at points in your code.
  2. Signal handlers to conditionally handle those signal maps (analyse, write to console/file/queue/db, etc.).

So you call a signal creator to (conditionally) create a signal (map) which is then dispatched to registered signal handlers for (conditional) handling.

This flow is visualized below:

Telemere signal flowchart
  • A/sync queue semantics are specified via handler dispatch options.
  • The shared call middleware cache is super useful when doing signal transformations that are expensive and/or involve side effects (like syncing with another service/db to get a unique tx id, etc.).