Ash Weekly: Issue #16
GigCity Elixir wrapped, new AshEvents extension, "Domain Modeling with Ash Framework" book launch, combination query feature released.
Ash Weekly!
Welcome to Ash Weekly — your quick, informal digest of what’s new and notable in the world of Ash Framework. Got something cool? Drop it in the #showcase channel on Discord!
Shameless Plugs
Check out Ash Premium Support from Alembic.
Sponsor me if you like what I do.
GigCity Elixir Wrapped
Fresh from the final talk at GigCity (about 3 hours ago), I’ve got some reflections. First, GigCity never disappoints. Such a fine group of people, nerds and innovators, introverts and extroverts, and not a single uninteresting soul in the bunch. I’ve got to meet some people I’ve only interacted with online, and putting a face and vibe to a GitHub or BlueSky handle is such a treat.
We also had an amazing crowd for the training, was such a pleasant day and everyone asked so many insightful questions! It’s a privilege to be able to work together with such smart people to help them learn more about Ash and what can be done with it.
Every talk was great, but here are a few talks that stood out.
Tell Me A Story - Saša Jurić
This talk truly blew me away. Saša is one of those folks that really knows how to weave a tale, but more importantly how to change the way you think about things. I don’t want to spoil the talk, but I will share a few takeaways to entice you to see it yourself when its released:
Empathy is important, and maybe missing from some of my personal technical processes.
Maybe I should try out a git UI???
Two weeks of engineering can save you 1 hour of planning.
Complex Tooling, Simple Output: Building A Nontrivial Product With AI Assistance and Elixir - Bobby Nathan
There have been a lot of talks about AI. Even for someone like myself who sees potential in AI, it’s been a bit frustrating. With that said, it would be practically tone deaf for a tech conference right now not to focus on this topic. Bobby’s talk stood out however as an exploration of real processes you can use to leverage these tools. Not hypothetical, driven by real success stories, offering novel and actionable strategies to work with these new LLM tools. Bobby is a lot of fun, and always hits you with something out of left field.
Building an Exception Tracker for Elixir Applications - Gonzalo Rodriguez
Tower is a really great project, something I’m excited to leverage in my own applications. Most importantly what I appreciate is their mentality as a team to solve problems for the sake of everyone in the community. They clearly care deeply about the Elixir community, and put their money where their mouth is. They have another project that I’m very excited about, called Elixir Observer. Check it out 😎
New AshEvents Extension
AshEvents is an extension for the Ash Framework that brings first-class event sourcing capabilities to your applications. It simplifies the process of tracking and replaying events, making it easier to manage historical data and debug complex systems.
Read the blog post, by Torkild Gunderson Kjevik for more.
"Domain Modeling with Ash Framework" book launch
Master Ash Framework with 150+ hands-on lessons, exercises, and real-world examples.
This book is packed with tons of useful info, definitely worth checking out 😎
Check out the homepage for more.
Combination Queries
Combination queries allow you to write a whole new class of query with Ash without having to reach for other tools, mapping essentially directly to SQLs `UNION`, `UNION ALL`, `INTERSECT` etc. See the guide for more.
Releases
Ash: 3.5.9
Combination Queries
Make ETS data layer logging far less noisy.
AshAuthentication: 4.8.0-4.8.3
Add `require_interaction?` option to magic link strategy, similar to the recently added flag with the same name for confirmation links. This makes it so that confirmation links take you to a page with a button on them that you have to click to authenticate with a magic link. Prevents scrapers, link previewers, email clients etc. from using up magic links.
Filter out users with nil hashed_password field during sign in, preventing a case where the error message was not clear for the developer (not a security issue)
Pass along the tenant claim from sign_in tokens to the long lived authentication tokens, supporting certain custom multi-tenant setups.
AshAuthenticationPhoenix: 2.7.0
Add an override to replace the register form with your own component, allowing much deeper customization of registration.
Support the new `require_interaction?` option in magic links
AshPostgres: 2.5.19
Support combination queries
AshSql: 0.2.75
Support combination queries