Phoenix LiveView, but event-sourced

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • Paraxial.io - Bot detection and prevention for Elixir/Phoenix applications
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
  • commanded

    Use Commanded to build Elixir CQRS/ES applications

    The context: I'm building a cryptocurrency exchange application. I don't have the business chops to run an actual exchange, so this is just for fun. The application is built in Elixir, using the Commanded framework for CQRS/ES goodness, and Phoenix LiveView because it's the hot new thing that I wanted to learn.

  • phoenix_live_view

    Rich, real-time user experiences with server-rendered HTML

    The context: I'm building a cryptocurrency exchange application. I don't have the business chops to run an actual exchange, so this is just for fun. The application is built in Elixir, using the Commanded framework for CQRS/ES goodness, and Phoenix LiveView because it's the hot new thing that I wanted to learn.

  • Paraxial.io

    Bot detection and prevention for Elixir/Phoenix applications. Paraxial.io is bot detection and prevention for Elixir/Phoenix applications. Dealing with scrapers, card cracking, or credential stuffing? We take care of that.

  • eventstore

    Event store using PostgreSQL for persistence (by commanded)

    My goal is to use LiveView to update a price chart as trades are executed by the system. A LiveView process is a lot like a GenServer, with a bespoke process for each client, executing handle_* functions as the client does things. The first step to real-time chart updates is to trigger one of these handler functions in my LiveView controller when a trade is executed. I'm using Commanded's own EventStore library to dispatch and store my events, so their documentation is the place to start.

  • Chart.js

    Simple HTML5 Charts using the <canvas> tag

    I'm using Chart.js, which is a popular graphing JavaScript library. It lives entirely on the client-side, which isn't very agreeable with Phoenix LiveView's server-side focus. Fortunately, LiveView allows you to set up JavaScript hooks, and then push events to them. We can make the client event-sourced, too! That's why I'm using push_event/3 instead of assign/3 in the example above. I'm using LiveView's JavaScript hooks to respond to events that I push from the LiveView process. Read more about LiveView JavaScript interoperability, it's really interesting.

  • Elixir

    Elixir is a dynamic, functional language designed for building scalable and maintainable applications

    The context: I'm building a cryptocurrency exchange application. I don't have the business chops to run an actual exchange, so this is just for fun. The application is built in Elixir, using the Commanded framework for CQRS/ES goodness, and Phoenix LiveView because it's the hot new thing that I wanted to learn.

  • contex

    Charting and graphing library for Elixir

    Now, if you were using a server-side charting library like ContEx, then you would just append the new events to what you've already got assigned to the socket, and your normal rendering function would rebuild the chart. You're done! But I wanted to make it more complicated.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts