I actually find composed queries and the associated "bureaucracy" a little annoying in Ecto. The convention seems to be to put pure "query components" in your schema, to call them from your context to build the actual query you want to send to your Repo.
The problem with that is that it becomes a bit harder to parse what the query actually is, which columns are effectively involved, and which indices to you want to create to make sure they support it. This is somewhat similar to what's briefly mentioned in a recent post by Sasa Juric: https://medium.com/very-big-things/towards-maintainable-elix...
Another thing is that I really wish they would find a way to make it more obvious/easier to understand that `Changeset` is a formidable tool for pure data validation, without necessarily involving a DB, or even a Schema.
Other than that, it's a great tool :)