2. Luis Ángel Vicente Sánchez
Software Engineer @ Innovation Team
OMNIA
DISTRIBUTED & REACTIVE
PLATFORM FOR DATA MANAGEMENT
Site https://developer.williamhill.com
Twi$er https://twitter.com/lvicentesanchez
5. • Lots of information flowing in the system.
• What if we could make sense of all of it...?
• ... and on real-time?
• We would be in a great position to innovate.
WHY BUILDING A DATA MANAGEMENT PLATFORM?
28. • Collects data from multiple data sources.
• Initially a PUSH system…
• ... but that introduces dependencies on 3rd parties.
• Evolved to a PUSH-PULL system.
CHRONOS
50. • Long term memory.
• Records all incidents as timelines, i.e. customer bets,
customer payments, everything that happens in a
match…
• … or any combination of those.
FATES
55. • Creates views using the timelines and/or other views.
• These views are created using:
– Timeline analysis
– Logical reasoning…
– ... or any other ML technique
FATES
57. • Timelines and views persisted to Cassandra.
• Column family name: <category>_tl or <category>_vw
• Column family key: ((entityId, date), timestamp)
FATES
60. • Short term memory
• Built on top of Spark: performant, distributed, real-time
computations.
• Built on top of abstractions that hide low level details:
Timeline, View, Stream, Sink, Monoid, Group, Ring…
NEOCORTEX
63. • Full duplex serving layer.
• Can be queried from any backend…
• ... and we provide a JS library to provide efficient data
access from the browser. Inspired by Falcor and
GraphML
HERMES
69. • To provide customers with bet suggestions to make their
experience more relevant/personal
• Offered to new and existing customers.
• Hot bets and personalized suggestions.
USE CASE: BET SUGGESTIONS
72. • To provide customers with a more engaging experience
by gamifying parts of the customer journey.
• Appeal to attributes like status, mastery, belonging.
• Achievements and rewards, leveling up, leaderboard, …
USE CASE: GAMIFICATION