Guy A. Narboni

Guy A. Narboni

Expert systems designer and IoT apprentice maker

Guy obtained his PhD in Computer Science at Paris-Saclay Ecole Normale Supérieure, and settled in Marseille (the home of Prolog). He has been a field consultant in AI and decision analytics for more than 2 decades. His track record is made of industrial studies for major companies. Guy wrote his first Erlang program 5 years ago, for a research project in Cloud Computing. Since then, he has been hoocked on it.

Past Activities

Guy A. Narboni
Code BEAM STO 2019
17 May 2019
11.25 - 12.10

From FP to FBP: Synthesizing processing elements for stream computing

Erlang is quite a natural fit for Flow-Based Programming (FBP). All the necessary constructs are built in the language to satisfy data transport and processing needs. To enable data streaming between between functional blocks working concurrently, all you have to do in practice is:

1. to graphically design a dataflow graph (or pipeline) and,

2. to provide the elementary function definitions to apply in each of its nodes.

If you follow a disciplined approach, the only pieces of code you have to write (or reuse) specifically are plain sequential Functional Programs (FP). The rest is a matter of code generation. In this talk, we show how to achieve that goal, studying various components ranging from "serverless" (i.e., stateless) servers up to stateful dataflow processors.


Wiring and programing agents for concurrently processing streams of data offers a simple model of computation that has applications in the fields of SCADA, IoT and Edge computing. At the same time, reconciling OTP pragmatic abstractions with mathematical views.


Programmers and software architects.


Guy A. Narboni
Code BEAM STO 2018
31 May 2018
16.25 - 17.10

Erliot: an experiment in the monitoring and control of smart connected devices

With Erliot, we test the relevance of a design pattern for IoT applications, where every communicating ‘thing’ in the real world is twined with a live ‘object’ in the virtual world. This dedicated agent is in charge of tracking the most recent history of the device in particularly. Implemented as a lightweight process at the edge or in the cloud, it allows for translating, filtering, downsampling, fusion of information and triggering alerts on upstream flows. It serves as a proxy for all other interactions.

The flow to monitor is thus dispatched to a sea of processes, prior to reaching a datalake (if required). Although natural to an Erlang trained mind, this solution comes as an alternative to most present reference architectures for the Internet of Things.

We’ll report on first experiments with a smart building application.