Session
Schedule FOSDEM 2022
JavaScript

Behavior Graph

A proven architecture for complex applications
D.javascript
Sean Levin
<p>Behavior Graph is a software architecture and state management library. It greatly enhances your ability to write complex user facing software and control systems.</p> <p>Broadly speaking, it belongs to the category of libraries which includes Redux, MobX, Rx (Reactive Extensions), and XState.</p> <p>It works by providing a new unit of composition which we call the behavior. Behaviors are simple blocks of code together with their dependency relationships.</p> <p>We developed Behavior Graph to address our own complexity challenges while building an iOS video playing library which is used internally throughout the suite of native Yahoo mobile apps. After years of development and production usage, it has proven to be incredibly competent at scale.</p> <p>We have since ported it to multiple languages including Javascript/Typescript. It is less than 1500 lines of code and contains no external dependencies.</p> <p>Behavior Graph should appeal to anyone with an interest in software architectures and willingness to rethink how we write software applications.</p>
Behavior Graph makes the dependency relationships between blocks of code its primary responsibility. We believe these relationships are the main source of complexity in most applications. Behavior Graph asks programmers to explicitly declare these dependency relationships. In exchange, it ensures that blocks of code are run at the correct time and in the correct order. As a result, the programmer is freed to reason locally about contained units of functionality, while the computer takes on the increasing complexity burden as an application grows in size. In the presentation we will introduce the primary abstractions provided by Behavior Graph. We will do this by working through a simple example of how the library works with code samples. Then we will show how these pieces hold together as an architecture. We will briefly touch on how it compares to similarly positioned libraries. Finally we will look at the current state of the library and a roadmap for the future.

Additional information

Type devroom

More sessions

2/5/22
JavaScript
D.javascript
<p>A short introduction about JavaScript Devroom with some interesting resources about JavaScript and a presentation about this special day for the FOSDEM JS Devroom.</p>
2/5/22
JavaScript
Boubacar Siddighi BARRY
D.javascript
<p>Did you face the difficulty of choosing a right architecture solution for a specific project or a client while considering their “rather” complex environment? Do you feel like you need to change your tech stack continuously?</p> <p>If the answer is yes to both of the questions, join my talk about the solutions I’ve found so we can ca discuss your best practice as well.</p> <p>Accelerators (technology kits) are opinionated yet pragmatic that I’ve identified and tested on the projects ...
2/5/22
JavaScript
Trishul Goel
D.javascript
<p>From loading Ajax requests in browsers to have full-blown frameworks; Javascript has come a long way. While moving stuff from backend to frontend the problems of backend are also ported. The Bigger the code gets bigger the problems, more dependencies, harder maintainability, eventually all the problems of a huge monolith. With MicroFrontends, we can break this monolith into smaller independent, maintainable apps. Sounds good? Let’s see how in this talk.</p>
2/5/22
JavaScript
Fabien Benetou (@Utopiah)
D.javascript
<p>We keep on hearing about the metaverse but what is it and more importantly, can JS be used to build it?</p> <p>We'll briefly clarify what the metaverse is and give practical examples today with federated virtual reality servers managed by different persons.</p>
2/5/22
JavaScript
Louis Foster
D.javascript
<p>(With a $4 microcontroller to build fun, accessible, and unique forms of interaction)</p> <p>The magic of computers and smartphones is the fact that they provide a very malleable interface - the screen. Without having to manufacture extra parts for every new application, this is a massive time and cost saving for engineers. However, this comes at a cost of accessibility and usability, as well as diminishing the physical connection one might have to the device they are using. Physical ...
2/5/22
JavaScript
Igor Lukanin
D.javascript
<p>I want to explain how to build data-intensive Jamstack apps with outstanding performance, low costs, and scalability while having great developer experience.</p>
2/5/22
JavaScript
David Sveningsson
D.javascript
<p>The hows and whys of using HTML-validate to automate accessibility testing for SPA.</p>