Armando Santos, Input-Output

Armando Santos, Input-Output

How to build a Distributed System with Real-time Constraints using concurrent Functional Programming tools

Building complex distributed systems with real-time constraints is challenging; when they are intended to be run by end users in an adversarial environment with no central control it becomes especially challenging! These constraints make off-the-shelf solutions inappropriate, particularly when the only reliable assumption is that only half of the network's nodes are 'honest', which makes creating a robust system extremely difficult. To accomplish this, we exploit the finest of what Strongly Statically Typed Purely Functional Programming has to offer. Type-safeness, referential transparency, compositionality, explicit control of effects, STM, and clever testing approaches are among the concepts and tools in our repertoire for managing complexity and ensuring the continuous operation of a distributed network.

This presentation will highlight some of the important items the IOG networking team is working on and where we believe we are succeeding.

Armando Santos is a Well-Typed Haskell consultant working in IOG's networking team for the past 2 years. He earned his Master's degree in Computer Engineering from the University of Minho, Portugal, where he specialised in Formal Methods in Software Engineering and Distributed Systems. He has been assisting the team in the implementation and testing of the Cardano network's peer-to-peer components. His research interests cover the algebra of programming, functional programming, abstract math, and lately applying semantic elegance and rigor to library design.