Speaker: Chandru Mullaparthi, Chairman of the Erlang Industrial User Group; Former Head of Software Architecture at bet365.
Expert industry analysis and proposal of the ideal components available today to make up a betting tech stack. A creative session to visualise building a betting stack from the ground up with no concern for a legacy, instead focusing on traditional and innovative technologies.
Chandru will draw on his experience building highly available, reliable, and concurrent systems for the online gambling & betting industry to outline his dreamteam of programming languages, middleware, operations, configuration management, and databases.
3. 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
4. What would a betting stack
with no burden of legacy
look like?
6. 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
7. • Hip young offspring of Erlang
• Ruby-like syntax
• Compiles down to Core Erlang
• Runs on the BEAM VM
truewave.io
www.erlang-solutions.com
8. Go
• A better C
• Good support for concurrency
• Excellent cross-platform support
• Excellent tool chain
truewave.io
www.erlang-solutions.com
14. 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)
16. 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
17. 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
21. • 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
23. PostgreSQL
• High performance
• Large installed base
• Actively developed
• License free!
truewave.io
www.erlang-solutions.com
24. 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
25. 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