Presentation: Protocols - The Glue for Applications

Most teaching and modelling revolves around synchronous techniques and solutions, as they are easier to grasp in the beginning. As multi-core and distributed architectures is becoming the norm the need for asynchronous design is increasing.

This is where old school protocols starts to shine again. The dragon of telecommunications is coming to life again.

All systems, but in particular asynchronous ones, can benefit from a more thorough focus on the interaction (aka the protocols) between the entities in the system. Programming the internals of a component - be that an object or a process - is not the hard part; making sure that the components can work together is the real challenge.

For synchronous systems you can avoid looking at the protocols for a long time, only to realise that you need them when things are becoming complex.

That approach will not even get you started with asynchronous systems, which is one of the reasons that many people find them hard to work with. It also has the effect that technologies, like Erlang, that embraces the asynchronous model can be hard to learn how to use to ones advantage.

In this talk we will spend most of the energy on how to design systems with asynchronous message passing between processes that do not share any memory.

We will see how The Golden Trinity of Erlang - share nothing processes, fail-fast and failure handling - relates to asynchronous protocols and how this mix of features provides a good solution for exploitation of the new multi-core and distributed architectures.

Talk objectives:

  • Show how to model asynchronous designs with Message Sequence Charts (aka Sequence Diagrams).
  • Show how Erlang's programming model fits implementation of asynchronous protocols in a robust way.
  • Explain why embracing failure is necessary to thrive on modern architectures.

Target audience: People looking for a better way of crafting systems, asynchronous or synchronous.

Torben Hoffmann Elsewhere


Covering innovative topics

Wednesday, 4 March

  • Architecture Improvements

    Next gen architecture, Arch over the full lifecycle, Bleeding edge tech in legacy, Cognitive biases in architecture, Evolving Architecture.

  • Big Data Frameworks, Architectures, and Data Science

    As big data tools and architectures continue to evolve, how do you architect and select technologies that work now but are also future-proof?

  • DevOps and Continuous Delivery: Code Beyond the Dev Team

    As infrastructure becomes as malleable as code, a unified approach from reqs to ops is needed to deliver promised breakthroughs.

  • Engineering Culture

    The best teams and companies talk about how to create amazing engineering cultures.

  • Java - Not Dead Yet

    Java is evolving to meet developer and business needs, from lambdas in Java 8 to built-in support for money types rumoured for Java 9.

  • Mind Matters at Work

    How theories from neuroscience and psychology can help us better understand IT professionals and discover what really motivates them.

Thursday, 5 March

  • Docker, containers and application portability

    People building stuff for and with containers showing why application portability is important, and what can be done with expanding ecosystems.

  • Evolving agile

    Reflecting on and learning from successes and failures in applying agile approaches since the creation of the Agile Manifesto and exploring ways of applying agile practices to increase business value.

  • HTML and JS Today

    The state of the art in web technologies. What is important to know and why?

  • Internet of Things

    What software devs need to know to design and build for instrumented environments and reactive things, what new issues and questions it raises.

  • Modern CS in the Real World

    How modern CS helps you tackle today's problems.

  • Reactive Architecture

    How to create reactive systems is more than simply learning a framework. Thinking in a reactive way helps you to design responsive architectures.

  • The Go Language

    The Go Language - Concurrency, Performance, Systems Programming.

Friday, 6 March

  • Architectures You've Always Wondered About

    Get a rare look behind the scenes and get to see the architectures of the most well-known sites with the least known architectures.

  • Low latency trading

    The 'race to zero' continues. Join us to learn about the latest tecniques being deployed to optimise order routing and execution.

  • Open source in finance

    Financial services have changed from OS as cost-saving to a competitive weapon. See open source projects that are disrupting the finance industry.

  • Product Mastery

    Come have fun with fellow PMs and BAs as you learn about Value Management. We'll even tell you dark tales of Snarks, Hippos and other obstacles.

  • Taming Microservices

    Tackling the challenges of microservices in practice.

  • Taming Mobile

    Mobile is no longer the Next Big Thing but a requirement for your business. Hear from those who have implemented successful mobile systems.

Conference for Professional Software Developers