We talk with Dave Lucia about Simplebet’s use of RabbitMQ and Commanded for solving unique real-time problems. We learn how Simplebet uses Elixir when creating real-time sports betting markets. We also learn what CQRS systems are, how the Commanded library supports that in Elixir, and how Commanded pairs well with RabbitMQ. Dave talks about moving away from Kafka to RabbitMQ and how that made sense for their use cases. Also valuable, Dave shares where they have found the “dragons” in their design. A helpful discussion that helps identify when CQRS systems might be a tool to use when solving our own problems. Also, Simplebet is betting on SurfaceUI for front-end design in a big and interesting way as well!
Show Notes online - http://podcast.thinkingelixir.com/75 (http://podcast.thinkingelixir.com/75)
Elixir Community News
- https://fly.io/phoenix-files/ (https://fly.io/phoenix-files/) – Phoenix focused section of Fly.io blog
- https://fly.io/phoenix-files/safe-ecto-migrations/ (https://fly.io/phoenix-files/safe-ecto-migrations/) – Safe Ecto Migrations multi-part guide
- https://github.com/erlang/otp/pull/5292 (https://github.com/erlang/otp/pull/5292) – Erlang 25 is documenting all the built-in types
- https://twitter.com/theerlef/status/1460683487317577734 (https://twitter.com/theerlef/status/1460683487317577734) – Erlang Ecosystem Foundation shared that they reached the milestone of 1000 members!
- https://www.youtube.com/watch?v=y8-9yZlye30 (https://www.youtube.com/watch?v=y8-9yZlye30) – Quinn Wilton's "100 years of Erlang" Code Beam America presentation
- https://slides.com/rc-6/100-years-of-erlang-slimmed (https://slides.com/rc-6/100-years-of-erlang-slimmed) – Quinn's slides
- https://github.com/spawnfest/eep49ers/ (https://github.com/spawnfest/eep49ers/) – SpawnFest Overall Winner
- https://github.com/spawnfest/eArangoDB (https://github.com/spawnfest/eArangoDB) – SpawnFest Maintainability Winner
- https://github.com/spawnfest/beamoji (https://github.com/spawnfest/beamoji) – SpawnFest Innovation Winner
- https://www.twitch.tv/josevalim (https://www.twitch.tv/josevalim) – Advent of Code problems will be solved by Jose Valim on Twitch
- https://github.com/rrrene/credo/blob/master/CHANGELOG.md (https://github.com/rrrene/credo/blob/master/CHANGELOG.md) – Credo 1.6 release includes mix credo --first-run feature
- https://github.com/livebook-dev/kino/pull/50 (https://github.com/livebook-dev/kino/pull/50) – Jonathan's Kino PR that adds "controls" and is demonstrated by playing multi-player Pong in a Livebook notebook!
- https://github.com/pprzetacznik/IElixir (https://github.com/pprzetacznik/IElixir) – Jupyter's kernel for Elixir
- https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md (https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md) – ExDoc v0.26.0 is out with new usability features
- https://twitter.com/josevalim/status/1462436734285795340 (https://twitter.com/josevalim/status/1462436734285795340) – José Valim highlights several new ExDoc features
- https://vimeo.com/647867227 (https://vimeo.com/647867227) – Oban Web v2.8.0 is out along with Oban Pro v0.9.3 and a video demonstrates the changes
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://www.youtube.com/watch?v=dmBdFh5N1g4 (https://www.youtube.com/watch?v=dmBdFh5N1g4) – Migrating from Kafka to RabbitMQ at SimpleBet: Why and How | David Lucia | RabbitMQ Summit 21
- https://medium.com/@davelucia/two-years-of-elixir-at-the-outline-ad671a56c9ce (https://medium.com/@davelucia/two-years-of-elixir-at-the-outline-ad671a56c9ce)
- https://medium.com/@davelucia/beyond-functions-in-elixir-refactoring-for-maintainability-5c73daba77f3 (https://medium.com/@davelucia/beyond-functions-in-elixir-refactoring-for-maintainability-5c73daba77f3)
- https://medium.com/@davelucia/battleship-elixir-json-sunk-my-float-dc3df46447db (https://medium.com/@davelucia/battleship-elixir-json-sunk-my-float-dc3df46447db)
- https://soundcloud.com/elixirtalk/episode-153-feat-dave-lucia-the-dream-stack-with-rust-elixir (https://soundcloud.com/elixirtalk/episode-153-feat-dave-lucia-the-dream-stack-with-rust-elixir)
- https://www.youtube.com/watch?v=xmUfTl33-fU (https://www.youtube.com/watch?v=xmUfTl33-fU) – Rustling up predictive sporting betting models on the BEAM - DAVID LUCIA
- https://www.youtube.com/watch?v=wvfhrvAFOoQ (https://www.youtube.com/watch?v=wvfhrvAFOoQ) – David Lucia - Refactoring Elixir for maintainability | Code BEAM SF 19
- https://www.youtube.com/watch?v=Lh5rA1pgWCk (https://www.youtube.com/watch?v=Lh5rA1pgWCk) – ElixirConf 2021 - Dave Lucia - Surface - a bridge to the Javascript community
- https://github.com/davydog187/migratingfromkafka (https://github.com/davydog187/migrating_from_kafka)
- https://speakerdeck.com/davydog187/betting-on-observability-at-simplebet (https://speakerdeck.com/davydog187/betting-on-observability-at-simplebet)
- https://lightstep.com/case-studies/simplebet/ (https://lightstep.com/case-studies/simplebet/)
- https://theoutline.com/ (https://theoutline.com/)
- https://www.bloomberg.com/ (https://www.bloomberg.com/)
- https://www.theverge.com/ (https://www.theverge.com/)
- https://www.bdg.com/ (https://www.bdg.com/)
- https://www.draftkings.com/ (https://www.draftkings.com/)
- https://www.amqp.org/ (https://www.amqp.org/)
- https://www.rabbitmq.com/ (https://www.rabbitmq.com/)
- https://github.com/commanded/commanded (https://github.com/commanded/commanded)
- https://opencollective.com/commanded (https://opencollective.com/commanded)
- https://microservices.io/patterns/data/cqrs.html (https://microservices.io/patterns/data/cqrs.html)
- https://en.wikipedia.org/wiki/Conflict-freereplicateddata_type (https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type)
- https://www.confluent.io/blog/avro-kafka-data/ (https://www.confluent.io/blog/avro-kafka-data/)
- https://kafka.apache.org/ (https://kafka.apache.org/)
- https://www.linkedin.com/in/joseph-lozano/ (https://www.linkedin.com/in/joseph-lozano/)
- https://en.wikipedia.org/wiki/Synthetic_monitoring (https://en.wikipedia.org/wiki/Synthetic_monitoring)
- https://github.com/surface-ui/surface (https://github.com/surface-ui/surface)
Guest Information
- https://twitter.com/davydog187 (https://twitter.com/davydog187) – Dave Lucia on Twitter
- https://twitter.com/sb_engineers (https://twitter.com/sb_engineers) – Simplebet Engineering on Twitter
- https://twitter.com/simplebethq (https://twitter.com/simplebethq) – Simplebet on Twitter
- https://github.com/davydog187/ (https://github.com/davydog187/) – on Github
- https://davelucia.com (https://davelucia.com) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)

We talk with Dave Lucia about Simplebet’s use of RabbitMQ and Commanded for solving unique real-time problems. We learn how Simplebet uses Elixir when creating real-time sports betting markets. We also learn what CQRS systems are, how the Commanded library supports that in Elixir, and how Commanded pairs well with RabbitMQ. Dave talks about moving away from Kafka to RabbitMQ and how that made sense for their use cases. Also valuable, Dave shares where they have found the “dragons” in their design. A helpful discussion that helps identify when CQRS systems might be a tool to use when solving our own problems. Also, Simplebet is betting on SurfaceUI for front-end design in a big and interesting way as well!

Show Notes online - http://podcast.thinkingelixir.com/75

Elixir Community News

https://fly.io/phoenix-files/ – Phoenix focused section of Fly.io blog
https://fly.io/phoenix-files/safe-ecto-migrations/ – Safe Ecto Migrations multi-part guide
https://github.com/erlang/otp/pull/5292 – Erlang 25 is documenting all the built-in types
https://twitter.com/theerlef/status/1460683487317577734 – Erlang Ecosystem Foundation shared that they reached the milestone of 1000 members!
https://www.youtube.com/watch?v=y8-9yZlye30 – Quinn Wilton's "100 years of Erlang" Code Beam America presentation
https://slides.com/rc-6/100-years-of-erlang-slimmed – Quinn's slides
https://github.com/spawnfest/eep49ers/ – SpawnFest Overall Winner
https://github.com/spawnfest/eArangoDB – SpawnFest Maintainability Winner
https://github.com/spawnfest/beamoji – SpawnFest Innovation Winner
https://www.twitch.tv/josevalim – Advent of Code problems will be solved by Jose Valim on Twitch
https://github.com/rrrene/credo/blob/master/CHANGELOG.md – Credo 1.6 release includes mix credo --first-run feature
https://github.com/livebook-dev/kino/pull/50 – Jonathan's Kino PR that adds "controls" and is demonstrated by playing multi-player Pong in a Livebook notebook!
https://github.com/pprzetacznik/IElixir – Jupyter's kernel for Elixir
https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md – ExDoc v0.26.0 is out with new usability features
https://twitter.com/josevalim/status/1462436734285795340 – José Valim highlights several new ExDoc features
https://vimeo.com/647867227 – Oban Web v2.8.0 is out along with Oban Pro v0.9.3 and a video demonstrates the changes

Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at [email protected]

Discussion Resources

https://www.youtube.com/watch?v=dmBdFh5N1g4 – Migrating from Kafka to RabbitMQ at SimpleBet: Why and How | David Lucia | RabbitMQ Summit 21
https://medium.com/@davelucia/two-years-of-elixir-at-the-outline-ad671a56c9ce
https://medium.com/@davelucia/beyond-functions-in-elixir-refactoring-for-maintainability-5c73daba77f3
https://medium.com/@davelucia/battleship-elixir-json-sunk-my-float-dc3df46447db
https://soundcloud.com/elixirtalk/episode-153-feat-dave-lucia-the-dream-stack-with-rust-elixir
https://www.youtube.com/watch?v=xmUfTl33-fU – Rustling up predictive sporting betting models on the BEAM - DAVID LUCIA
https://www.youtube.com/watch?v=wvfhrvAFOoQ – David Lucia - Refactoring Elixir for maintainability | Code BEAM SF 19
https://www.youtube.com/watch?v=Lh5rA1pgWCk – ElixirConf 2021 - Dave Lucia - Surface - a bridge to the Javascript community
https://github.com/davydog187/migrating_from_kafka
https://speakerdeck.com/davydog187/betting-on-observability-at-simplebet
https://lightstep.com/case-studies/simplebet/
https://theoutline.com/
https://www.bloomberg.com/
https://www.theverge.com/
https://www.bdg.com/
https://www.draftkings.com/
https://www.amqp.org/
https://www.rabbitmq.com/
https://github.com/commanded/commanded
https://opencollective.com/commanded
https://microservices.io/patterns/data/cqrs.html
https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type
https://www.confluent.io/blog/avro-kafka-data/
https://kafka.apache.org/
https://www.linkedin.com/in/joseph-lozano/
https://en.wikipedia.org/wiki/Synthetic_monitoring
https://github.com/surface-ui/surface

Guest Information

https://twitter.com/davydog187 – Dave Lucia on Twitter
https://twitter.com/sb_engineers – Simplebet Engineering on Twitter
https://twitter.com/simplebethq – Simplebet on Twitter
https://github.com/davydog187/ – on Github
https://davelucia.com – Blog

Find us online

Message the show - @ThinkingElixir
Email the show - [email protected]
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Sponsored By:

Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Twitter Mentions