SlideShare a Scribd company logo
Alternative Programming Conference
Workshops 7 November
Conference 8-9 November
www.codemesh.io
Exclusive 

10% off with 

code ESL10
Building an ideal betting stack
Chandru Mullaparthi
About me
• Started programming when I was about 12
• Started getting paid to do it when I was 21
• Spent 18 years in Telecoms
• Involved in the betting industry since 2014
• Currently working on an advertising startup
• Provide consulting for Erlang Solutions
What would a betting stack
with no burden of legacy
look like?
Programming languages
truewave.io
www.erlang-solutions.com
Erlang / OTP
• Concurrency oriented
• Functional Programming
• Expressive
• Optimised for multicore
• Erlang is the language
• OTP is a set of applications
truewave.io
www.erlang-solutions.com
• Hip young offspring of Erlang
• Ruby-like syntax
• Compiles down to Core Erlang
• Runs on the BEAM VM
truewave.io
www.erlang-solutions.com
Go
• A better C
• Good support for concurrency
• Excellent cross-platform support
• Excellent tool chain
truewave.io
www.erlang-solutions.com
Middleware
truewave.io
www.erlang-solutions.com
Apache Kafka
• High performance messaging
platform
• Ideal glue for interconnecting
systems asynchronously
• Persistent, replicated queues
• “At least once” or “exactly
once” semantics
• Event sourcing
Source: https://confluent.io
truewave.io
www.erlang-solutions.com
Apache Kafka
Source: http://kafka.apache.org
Apache Kafka
Source: http://kafka.apache.org
• Generic RPC mechanism
• Programming language
agnostic
• HTTP/2 transport protocol
• Bi-directional streaming &
integrated auth
• gRPC-REST gateway Source: https://grpc.io
truewave.io
www.erlang-solutions.com
GRPC
• Unary RPC (traditional client-server request / response)
• Server Streaming RPCs (client sends request, servers sends a stream
of messages as response)
• Client Streaming RPCs (client writes a sequence of messages as
request, and waits for server response)
• Bidirectional streaming (like when you and your spouse have an
argument)
Operations
truewave.io
www.erlang-solutions.com
Prometheus
• Monitoring and Alerting system
• Multi dimensional data model
• Powerful query language
• Single binary - requires only disk
• Pulls metrics
• CNCF project
Source: https://prometheus.io
truewave.io
www.erlang-solutions.com
OpenTracing
• An open standard for
distributed tracing
• Enables easy visualisation
of execution flow in
distributed systems
• Visualisation using Zipkin,
Jaeger etc.
Source: https://opentracing.io
Source: https://zipkin.io
Source: https://eng.uber.com/distributed-tracing/
Configuration Management
truewave.io
www.erlang-solutions.com
• Distributed Key/Value store
• Useful as a centralised
configuration store
• Ability to push updates to
config
• Useful to implement
distributed coordination
truewave.io
www.erlang-solutions.com
Databases
truewave.io
www.erlang-solutions.com
PostgreSQL
• High performance
• Large installed base
• Actively developed
• License free!
truewave.io
www.erlang-solutions.com
Riak KV
• Distributed NoSQL database
• Various control levers to tradeoff
consistency for availability
• Built-in CRDT support!
• Based on Amazon’s dynamo
paper
• Multi datacenter replication to be
available as open source soon!
truewave.io
www.erlang-solutions.com
Erlang/Elixir
Publishers
Bet Placement
Settlement
Session Management
Wallet APIs
Cash out
Liability calculations
Golang
Data transformation tools
Operational utilities
C#
Customer support apps
Back office tools
Trader tools
PostgreSQL
Customer Subscription Data
Bets (active / settled)
Wallet
Prometheus
Kafka
Riak
Bets (active / settled)
Wallet
THANK YOU
Any questions?
Chandru Mullaparthi

CTO @ TrueWave

More Related Content

PPTX
Functional Programming in PHP
PPTX
Elixir - After 2 years in action + code WebUp
PDF
Online Talk - Elixir and Phoenix UNIZA OCT 2020
PDF
Metaprogramming Go
PPTX
Threefold integration: CMS, TMS, and CAT — UTIC 2016
PPTX
Techdays 2012 - What is new in .NET 4.5 & Visual Studio 2012
PPTX
PHP Training In Ambala! BATRA COMPUTER CENTER
PPTX
Introduction to Kamailio (TADSummit 2020 Asia)
Functional Programming in PHP
Elixir - After 2 years in action + code WebUp
Online Talk - Elixir and Phoenix UNIZA OCT 2020
Metaprogramming Go
Threefold integration: CMS, TMS, and CAT — UTIC 2016
Techdays 2012 - What is new in .NET 4.5 & Visual Studio 2012
PHP Training In Ambala! BATRA COMPUTER CENTER
Introduction to Kamailio (TADSummit 2020 Asia)

What's hot (20)

PPT
dot net final year project in jalandhar
PPT
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
PPTX
IoT with SignalR & .NET Gadgeteer - NetMF@Work
PDF
Scripting Languages in OSGi
PPTX
Technology Stack Discussion
PDF
XML usage in my work, 2015
PPTX
Magento applications and modules functional testing
PDF
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
PDF
Service Discovery in OSGi: Beyond the JVM using Docker and Consul
PPTX
The fall of the BizTalk Architect – From something abstract to something useful
PPTX
What's Kotlin and Why?
PPTX
Flask and Paramiko for Python VA
PDF
PHP Web Development Frameworks & Advantages
PPTX
F# on the Server-Side
PDF
Which messaging layer to use in a loosely coupled distributed app (no speaker...
PDF
Clovaを支える技術 機械学習配信基盤のご紹介
PPTX
PHP Training in Chandigarh
PPT
VFP & Ajax
PPT
Implementing portlets using Web Scripts
dot net final year project in jalandhar
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
IoT with SignalR & .NET Gadgeteer - NetMF@Work
Scripting Languages in OSGi
Technology Stack Discussion
XML usage in my work, 2015
Magento applications and modules functional testing
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
Service Discovery in OSGi: Beyond the JVM using Docker and Consul
The fall of the BizTalk Architect – From something abstract to something useful
What's Kotlin and Why?
Flask and Paramiko for Python VA
PHP Web Development Frameworks & Advantages
F# on the Server-Side
Which messaging layer to use in a loosely coupled distributed app (no speaker...
Clovaを支える技術 機械学習配信基盤のご紹介
PHP Training in Chandigarh
VFP & Ajax
Implementing portlets using Web Scripts
Ad

Similar to Building the ideal betting stack | London Erlang User Group presentation (20)

PDF
Introduction to Erlang Part 2
PDF
Erlang factory SF 2011 "Erlang and the big switch in social games"
PDF
Erlang, the big switch in social games
PDF
FunctionalConf '16 Robert Virding Erlang Ecosystem
KEY
Osdc 2011 michael_neale
ODP
An introduction to erlang
PDF
Erlang Lightning Talk
PDF
Introduction To Erlang Final
PDF
Introduction To Distributed Erlang
PDF
Erlang from behing the trenches by Francesco Cesarini
PDF
MPI, Erlang and the web
PDF
Choosing the Erlang Ecosystem for Developing the Applications of the Future!
PDF
Why Erlang? - Bar Camp Atlanta 2008
PDF
3 f6 9_distributed_systems
PDF
Erlang: Software for a Concurrent world
PDF
Erlang is not a city in Germany
PDF
Inter-Process Communication in distributed systems
PDF
Designing scalable application: from umbrella project to distributed system -...
PDF
Erlang Message Passing Concurrency, For The Win
PPTX
Mcroservices with docker kubernetes, goang and grpc, overview
Introduction to Erlang Part 2
Erlang factory SF 2011 "Erlang and the big switch in social games"
Erlang, the big switch in social games
FunctionalConf '16 Robert Virding Erlang Ecosystem
Osdc 2011 michael_neale
An introduction to erlang
Erlang Lightning Talk
Introduction To Erlang Final
Introduction To Distributed Erlang
Erlang from behing the trenches by Francesco Cesarini
MPI, Erlang and the web
Choosing the Erlang Ecosystem for Developing the Applications of the Future!
Why Erlang? - Bar Camp Atlanta 2008
3 f6 9_distributed_systems
Erlang: Software for a Concurrent world
Erlang is not a city in Germany
Inter-Process Communication in distributed systems
Designing scalable application: from umbrella project to distributed system -...
Erlang Message Passing Concurrency, For The Win
Mcroservices with docker kubernetes, goang and grpc, overview
Ad

More from Erlang Solutions (8)

PDF
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
PDF
Datadog and Elixir with Erlang Solutions
PDF
Strategies for successfully adopting Elixir
PPTX
RabbitMQ vs Apache Kafka Part II Webinar
PDF
RabbitMQ vs Apache Kafka - Part 1
PDF
Designing & architecting RabbitMQ engineered systems - Ayanda Dube @ London R...
PDF
Efficient Erlang - Performance and memory efficiency of your data by Dmytro L...
PDF
Empowering mobile first workers in emerging-markets using messaging
Fintech_Trends_for_2022_report_by_Erlang_Solutions.pdf
Datadog and Elixir with Erlang Solutions
Strategies for successfully adopting Elixir
RabbitMQ vs Apache Kafka Part II Webinar
RabbitMQ vs Apache Kafka - Part 1
Designing & architecting RabbitMQ engineered systems - Ayanda Dube @ London R...
Efficient Erlang - Performance and memory efficiency of your data by Dmytro L...
Empowering mobile first workers in emerging-markets using messaging

Recently uploaded (20)

PDF
August Patch Tuesday
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Hybrid model detection and classification of lung cancer
PDF
Mushroom cultivation and it's methods.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
project resource management chapter-09.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
Tartificialntelligence_presentation.pptx
August Patch Tuesday
A comparative analysis of optical character recognition models for extracting...
1 - Historical Antecedents, Social Consideration.pdf
Encapsulation_ Review paper, used for researhc scholars
Digital-Transformation-Roadmap-for-Companies.pptx
DP Operators-handbook-extract for the Mautical Institute
Getting Started with Data Integration: FME Form 101
Chapter 5: Probability Theory and Statistics
Web App vs Mobile App What Should You Build First.pdf
cloud_computing_Infrastucture_as_cloud_p
Hybrid model detection and classification of lung cancer
Mushroom cultivation and it's methods.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
project resource management chapter-09.pdf
Unlocking AI with Model Context Protocol (MCP)
A novel scalable deep ensemble learning framework for big data classification...
TLE Review Electricity (Electricity).pptx
Heart disease approach using modified random forest and particle swarm optimi...
Group 1 Presentation -Planning and Decision Making .pptx
Tartificialntelligence_presentation.pptx

Building the ideal betting stack | London Erlang User Group presentation