Turn Hours into Seconds - Concurrent Event Processing
For programmers who have been using locks for synchronizing threads to solve all concurrency problems, embracing message passing and creating concurrent data flows is an enlightening experience. This talk is a case study of a real world concurrency problem where the developer started with a slow non-thread-safe solution and refactored it step by step into a fast yet simple concurrent solution making use of Elixir's concurrent computation library called Flow.
Outline/structure of the Session
In this talk, I'll be sharing my learnings from the most rewarding refactoring I've ever made - one which turned an extremely slow sequential solution for an event processing and aggregation problem into a blazing fast and concurrent one. I'll be going through a problem and the different iterations of the solution to the problem that will go from:
- Simple and non-thread safe
- Simple and thread safe but slow
- Concurrent and fast yet simple, using Flow - an official Elixir library for concurrent computations
I will also be talking about the things that happen behind the scenes in Elixir in order to achieve this level of concurrency.
This talk will help more programmers appreciate the beauty of message passing and take away some new ideas for approaching concurrency in their day-to-day work.
Programmers looking to learn patterns for solving concurrency problems in their day to day work
schedule Submitted 4 months ago
People who liked this proposal, also liked:
Dhaval Dalal / Morten Kromberg - Code JugalbandiDhaval DalalAgile Coach/Software ArtisanAgileFAQs TechMorten KrombergCXODyalog
schedule 5 months agoSold Out!
In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.
In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.This time the focus of code jugalbandi will be on solutioning in different paradigms - object-oriented or functional programming and array-oriented paradigms.
During the session, Morten and Dhaval will take turns at coding the same problem using different languages and paradigms. There would be multiple such rounds during the Jugalbandi.
Saurabh Nanda - Real-world Haskell: Good, Bad, & Ugly - Experience of putting 34,000 lines in productionSaurabh NandaFounderVacation Labs
schedule 1 month agoSold Out!
- The ability to fearlessly refactor as our market and our code evolved.
- The ability to write only meaningful tests, and to increase coverage without increasing dev effort.
- To share data structures across the backend & frontend.
- And finally, the ability to continue developing features at speed - something that we take for granted in Rails.
In this talk, we will share our experience of using Haskell, with the focus on what the ecosystem enables us to do today, pragmatically. By the end of this talk, you will know the pros and cons of using Haskell in a real-world setting, and how to contribute in making the ecosystem better. (An aside, we aren’t using Haskell on the frontend, but Typescript, which also gives us quite a few of the abilities mentioned above).
Jayaram Sankaranarayanan - A peek in to Elm ArchitectureJayaram SankaranarayananTechnical LeaderCisco Systems, Inc.
schedule 4 months agoSold Out!
In this session, attendees will be introduced to the basics of functional programming principles, using the Elm lang constructs, the Elm Architecture and how Elm enables easy and reliable refactoring.
Anil Wadghule - Building Distributed System with Erlang EcosystemAnil WadghuleProgrammerIndependent Software Consultant
schedule 4 months agoSold Out!
In this talk, we will explore how can we write a distributed system with Elixir/Erlang. We will cover distributed systems basics, how a distributed system is capable of enhanced performance and how it gives us higher availability.
Then we would start with a demonstration of a distributed system written with Elixir programming language. We will spend most of the talk discussing the demo code.
We will also cover main advantages of Elixir/Erlang ecosystem to build distributed systems.
We will explore aspects such a latency, throughput, computing power. We will understand how Elixir is capable for fault tolerance, resilience. We will explore tool set provided by OTP library. What tools from library helps us to write a distributed system.
But distributed Erlang/Elixir *has known limitations*. For example, issues with when a network is fully meshed, how many numbers of nodes which can scale we get in a cluster, how sending large data over distribution is an issue etc. What are solutions for it?
Anil Wadghule - Why use Elixir?Anil WadghuleProgrammerIndependent Software Consultant
schedule 4 months agoSold Out!
A lot of companies still decide to go with Node.js / Java / Ruby / Python for building web apps.
In this talk, we will focus on, how Elixir ecosystem is ready to replace Node.js / Java / Ruby / Python for most of the web apps
The aim of this talk is to present why Elixir lang is a good choice for building your next web app.
We will explore some of the features and tool that Phoenix web framework provides that replaces the need of using Java / Node.js / Ruby / Python for web apps. e.g. Better concurrency model, Ecto for database interaction, Phoenix channels, Simple APIs, Umbrella apps etc, Speed of development.
We will also compare syntaxes of these languages by seeing the code of the same app but with multiple languages.
This talk will also show how using Elixir also helps us a become better programmer because of features like immutability, functions, pattern matching, first class processes etc, great syntax.
At the end of the talk, every Java / Node.js / Ruby / Python developer should feel confident about Elixir and talk will motivate them to choose Elixir over Java / Node.js / Ruby / Python for building the next web app.