Elixir Wizards

"Saga of a Gnarly Report" with Owen and Dan


Listen Later

In today's episode, Elixir Wizards Owen and Dan delve into the complexities of building advanced reporting features within software applications. They share personal insights and challenges encountered while developing reporting solutions for user-generated data, leveraging both Elixir/Phoenix and Ruby on Rails.

The discussion zeroes in on crucial data modeling and architectural decisions that enhance reporting efficiency and flexibility. Owen and Dan explore tactics like materialized views, event sourcing, and database triggers to optimize data handling while being mindful of UX elements like progress indicators and background job management.

They share insights on leveraging the Elixir/Beam ecosystem’s strengths—like concurrency and streamlined deployment—to tackle common reporting, caching, and integration challenges. The episode highlights the impact of reporting features across all aspects of a software application’s design and architecture.

Key topics discussed in this episode:
  • Reporting on assessment data, survey results, and user metrics
  • Differences between reporting and performance/error monitoring
  • Implementing reporting in Elixir/Phoenix vs. Ruby on Rails
  • Displaying reports in web, printable, PDF, SVG, and CSV formats
  • Challenges of generating PDFs for large data sets
  • Streaming CSV data directly to the client
  • Handling long-running report generation tasks
  • Providing progress indicators and user notifications
  • Strategies for canceling or abandoning incomplete reports
  • Tradeoffs of pre-calculating report data vs. real-time generation
  • Materializing views and denormalizing data for reporting
  • Exploring event sourcing patterns for reporting needs
  • Using database triggers and stored procedures for reporting
  • Balancing data structure optimization for reports vs. day-to-day usage
  • Caching report data for faster retrieval and rendering
  • Charting and visualization integration in reporting systems
  • Links mentioned:

    Prometheus monitoring system & time series database https://prometheus.io/

    Thinking Elixir "FLAME with Chris McCord" https://podcast.thinkingelixir.com/181
    Phoenix LiveView Uploads https://hexdocs.pm/phoenix/file_uploads.html
    https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.UploadWriter.html
    Postgrex PostgreSQL driver for Elixir https://hexdocs.pm/postgrex/Postgrex.html
    Ecto https://hexdocs.pm/ecto/Ecto.html
    Heroku cloud application platform  https://www.heroku.com/
    Elixir Wizards S9E12 Marcelo Dominguez on Command and Query Responsibility Segregation https://smartlogic.io/podcast/elixir-wizards/s9-e12-marcelo-dominguez-cqrs/
    Commanded Elixir CQRS/ES applications https://github.com/commanded/commanded
    Tailwind CSS Framework https://github.com/tailwindlabs
    Memcached https://memcached.org/
    Redis https://redis.io/
    Oban https://hexdocs.pm/oban/Oban.html
    ETS https://hexdocs.pm/ets/ETS.html
    Capistrano remote server automation and deployment tool https://capistranorb.com/

    ...more
    View all episodesView all episodes
    Download on the App Store

    Elixir WizardsBy SmartLogic LLC

    • 4.9
    • 4.9
    • 4.9
    • 4.9
    • 4.9

    4.9

    22 ratings


    More shows like Elixir Wizards

    View all
    Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

    Software Engineering Radio - the podcast for professional software developers

    262 Listeners

    The Changelog: Software Development, Open Source by Changelog Media

    The Changelog: Software Development, Open Source

    285 Listeners

    Startups For the Rest of Us by Rob Walling

    Startups For the Rest of Us

    694 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    630 Listeners

    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

    Syntax - Tasty Web Development Treats

    985 Listeners

    REWORK by 37signals

    REWORK

    212 Listeners

    CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

    CoRecursive: Coding Stories

    185 Listeners

    Elixir Mix by Charles M Wood

    Elixir Mix

    13 Listeners

    The Stack Overflow Podcast by The Stack Overflow Podcast

    The Stack Overflow Podcast

    63 Listeners

    Thinking Elixir Podcast by ThinkingElixir.com

    Thinking Elixir Podcast

    31 Listeners

    Beam Radio by Lars Wikman

    Beam Radio

    11 Listeners

    Software Unscripted by Richard Feldman

    Software Unscripted

    26 Listeners

    Oxide and Friends by Oxide Computer Company

    Oxide and Friends

    47 Listeners

    Elixir Mentor by Jacob Luetzow

    Elixir Mentor

    2 Listeners

    Elixir Friends by German Velasco

    Elixir Friends

    0 Listeners