1. Start
  2. An entity
  3. A source
  4. A rule
  5. A port
  6. A link
  7. A fact
  8. An app
  9. Split

Mail is its own domain

The blog announces that a post was published, and a second frond receives it. The mailer and its log move into that frond.

fronds/blog/entities/PostPublished.ts
1import Post from './Post.js';
2
3export default class PostPublished extends Post.pick('id', 'title') {}c

point at a lettered line, or tap it, to see what grows from it

The blog names nobody. Accepting a Fact<T> is the subscription.

Try it
$ curl -X POST localhost:4100/api/blog/posts/$ID/publish
INF [app:mail:AuditMailer] (mail:MailHandler.onPublished) sending Published: Hi
mail: Published: Hi
In the docsFactFacade
Built with Fougere and Nuxt, hosted on GitHub Pages.