The SAM Pattern: a distributed system view of Front-End architectures by Jean-Jacques Dubray

A session at Node PDX 2016

Monday 20th June, 2016

1:15pm to 1:45pm (PST)

Web Applications are rapidly becoming sophisticated distributed systems. When you look at a Facebook page or a Netflix catalog,
the number of components interacting with each other requires complex synchronization and state management capabilities, reaching
the limits of the MVC pattern.

In the last couple of years, several reactive architectures have started to get some interest (React, Cycle.js, ELM) without
generating significant traction (compared to established frameworks like Angular), while struggling to position effects in their
programming model. A new reactive, functional pattern, the State-Action-Model pattern (SAM) was introduced in early 2016 on the
foundation of TLA+ semantics.

The pattern, which is unapologetically driven by simplicity, promotes a clear delineation between the business logic and the view
and challenges the complexity of frameworks like Google's Angular or Facebook's React/Redux.

SAM's unidirectional flow is also challenging interactive patterns like BFF (Back-End for Front-End) or the Vertical Slice Pattern
which suggest creating view-specific APIs, per platform, app, versions of an app...

We'll start by reviewing some of the key challenges of modern UX and Front-End Architectures. We will then present the
key concepts of SAM and walk the audience through some node.js code samples (including server-side TimeTravel).

About the speaker

This person is speaking at this event.
Jean-Jacques Dubray

Metaprogrammer at heart bio from Twitter

Next session in Main Room

2pm Broken Promises in Open Source by Jacob

4 attendees

  • Adron Hall
  • Matt McKegg
  • Jean-Jacques Dubray
  • Erik Ratcliffe

Coverage of this session

Sign in to add slides, notes or videos to this session

Sign in to track this session

Tell your friends!


Time 1:15pm1:45pm PST

Date Mon 20th June 2016


Main Room, Bossanova Ballroom

Short URL


Official event site


View the schedule


See something wrong?

Report an issue with this session