Prismatic Platform

Dispatches from the stack

Deep dives into platform evolution, engineering standards, architectural decisions, and the intelligence systems that power Prismatic.

Showing 50 results in engineering clear
Engineering

Shipping Zola to GitHub Pages: A 2938-Broken-Links Postmortem

A single-day devops postmortem: taking a private Elixir umbrella repo and shipping a 2808-page static site to GitHub Pages under a subpath, from 2938 broken links to zero.

Apr 24, 2026 Β· 9 min read Β· Tomas Korcak (korczis)
zola github-pages static-site +3
Engineering

Supervision Trees for OSINT Pipelines: Let It Crash, Keep the Evidence

How Prismatic structures supervision trees so that a single flaky OSINT adapter never brings down a case. DynamicSupervisor, Task.Supervisor, and the one-for-one rule that saved production.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
otp supervision osint +2
Engineering

LiveView Hub Patterns: Building Intelligence UI That Survives Contact With Reality

Intelligence workflows demand UI that streams, degrades gracefully, and never deadlocks the BEAM. Here are the LiveView patterns Prismatic uses across /hub β€” async mounts, PubSub fan-out, and the one rule that prevents 90% of prod crashes.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
liveview phoenix pubsub +2
Engineering

Task.async_stream Patterns: The One OSINT Concurrency Primitive You Actually Need

You don't need a job queue for 50 parallel OSINT lookups. You need Task.async_stream with the right timeout, the right max_concurrency, and `on_timeout: :kill_task`. Here's the recipe and the three gotchas.

Apr 09, 2026 Β· 6 min read Β· TomΓ‘Ε‘ Korcak (korczis)
task concurrency async +2
Engineering

LiveView Streams for Large Datasets: 10k Rows Without the Memory Bill

Phoenix LiveView streams solve a problem most dashboards pretend they don't have: the DOM keeps every row you ever rendered. Here's when to reach for streams, when to reach for pagination, and the memory math behind the decision.

Apr 09, 2026 Β· 6 min read Β· TomΓ‘Ε‘ Korcak (korczis)
liveview streams performance +2
Engineering

From Bare Rescue to Typed Errors: How Prismatic Killed 6,000 Silent Failures

A `rescue _ -> :error` is a bug factory. It swallows the context that would have told you what went wrong. The ZERO doctrine banned them β€” here's what replaced them across 128 OSINT adapters.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
error-handling zero-tolerance rescue +2
Engineering

Dialyzer, @spec, and the Shape of Correctness

Dialyzer is not a type checker. It's a proof assistant that accepts anything you can't prove wrong β€” and that is exactly what you want for a 94-app umbrella. Here's how Prismatic uses @spec and success typing without it becoming busywork.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
dialyzer typespec success-typing +2
Engineering

Circuit Breakers for Flaky OSINT Sources: Fail Fast, Recover Quietly

Some OSINT sources are up 99.9% of the time. Some are up 73%. Retrying a down source synchronously is how pipelines die. Circuit breakers turn a 30-second timeout into a 1-millisecond :circuit_open.

Apr 09, 2026 Β· 6 min read Β· TomΓ‘Ε‘ Korcak (korczis)
circuit-breaker resilience osint +2
Engineering

Observer in Production: The BEAM Introspection Nobody Talks About

:observer is the most underused debugging tool in the Elixir ecosystem. Attached to a running node, it shows you every process, every ETS table, every mailbox β€” live. Here's how to run it safely against prod.

Apr 09, 2026 Β· 6 min read Β· TomΓ‘Ε‘ Korcak (korczis)
observer debugging beam +2
Engineering

Telemetry to Prometheus: The Pipeline You Stop Writing Once You Get It Right

`:telemetry` events β†’ `Telemetry.Metrics` definitions β†’ Prometheus exporter β†’ Grafana. Four steps, three libraries, one rule: the metrics list is the API.

Apr 09, 2026 Β· 6 min read Β· TomΓ‘Ε‘ Korcak (korczis)
telemetry prometheus metrics +2
Engineering

Ecto.Multi for Audit-Safe Writes: The Transaction Is the Audit Trail

When a single user action touches five tables, you need atomicity AND a complete audit record. Ecto.Multi gives you both for free β€” if you commit to the pattern and never mix it with bare Repo calls.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
ecto ecto-multi transactions +2
Engineering

ETS-Backed Registries: The Performance Trick Behind 552 Self-Registering Agents

Self-registration sounds like metaprogramming magic. It's actually just ETS + @after_compile + discipline. Here's exactly how Prismatic keeps 1,110 agent definitions (~70 runtime) and 128 OSINT tools discoverable in sub-millisecond time.

Apr 09, 2026 Β· 7 min read Β· TomΓ‘Ε‘ Korcak (korczis)
ets registry metaprogramming +2