Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-mediator

In-process messaging for Pudu: requests, notifications, streams, pipeline behaviors, processors, and exception handling

0.1.0Apache-2.01

InstallClose

ADR-0001-outcomes-not-exceptions.md

Markdown32 lines881 B

GitHub ↗

ADR-0001 — Every handler and component answers an outcome


type: adr status: Accepted tags: [adr]


Context

Behaviors, processors, and exception components decide from what the inner layers answered. Pudu has no exceptions to catch, and a panic ends the program.

Decision

Every handler, behavior, processor, and publication answers Outcome[T, E], a Result[T, Failure[E]] ([[src/PuduLangMediator]]). Exception handlers and actions receive the failure as a value.

Consequences

  • Every refusal the mediator makes is a value the caller matches on.
  • A thread that stops in a parallel publication or a stream reader is reported as Crashed.

Rejected

  • Panicking on a missing handler: one unregistered message would stop a service.

Referenced by

[[CHANGELOG]] · [[decisions/_MOC]] · [[domain/Outcome]] · [[handoffs/2026-10-06-initial-package]]