This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-12-15
Channels
- # adventofcode (46)
- # announcements (3)
- # aws (7)
- # babashka (47)
- # beginners (86)
- # calva (40)
- # cider (8)
- # clj-kondo (22)
- # clojure (63)
- # clojure-europe (16)
- # clojure-hungary (3)
- # clojure-nl (1)
- # clojure-norway (46)
- # clojure-sweden (1)
- # clojure-uk (3)
- # clojuredesign-podcast (2)
- # conjure (4)
- # datalevin (1)
- # events (1)
- # fulcro (5)
- # graalvm (4)
- # honeysql (8)
- # hyperfiddle (15)
- # music (1)
- # off-topic (5)
- # pathom (7)
- # pedestal (1)
- # polylith (3)
- # portal (19)
- # quil (1)
- # re-frame (36)
- # releases (1)
- # specter (3)
- # sql (3)
- # timbre (11)
- # tools-deps (4)
- # xtdb (55)
I am wondering what the real world usage of pathom 3 is. I am sorry if this is an overly general question that has been answered relatively recently. I would be happy to be pointed to an answer somewhere. I have read that it is still in alpha and this disclaimer in the README Recommended for enthusiasts and people looking to help, chase bugs, and help improve the development of Pathom.
. It seems to have been in that state for quite a long time now, so I was curious for a more nuanced answer. For context on my interest, I am a confident clojure programmer that has written software in clojure for over 10 years. I am interested in considering pathom/fulcro for a production application which needs some significant rework from it’s current state. We are a small team.
My opinion, after working for 4+ years with pathom, in at least 3 teams, ~5 distinct projects: Pathom is way ahead of the time. It is difficult to explain all the advantages of using pathom. And pathom requires many consensus from the team: • consensus about use clojure • consensus about use graph API • consensus about "data oriented" • consensus about qualified keywords • consensus about "do not type things" Only once all your team (for team here, include your CTO) agree on those things, you are free to use pathom and use all its advantages in its maximum power. Otherwise, it will only create conflicts. TLDR: kind of lisp curse
In a simple case, it feels quite powerful to be able to add calcualted and further derived values to any data model you have and not have to think about where or how the values you need get to you. You previously said X
comes from Y
and so X
you know is in the graph of resolvable attrs. If you want to calculate Z
as a function of X
then you can write that behavior without worrying about where X
is in your data model, as long as it's present in the graph (and resolvable at run time). Then you can really easily just request Z
.
Some other points I've noticed Pathom can do well:
• Dependency injection
• Runtime validations against schemas for attrs, or just using the https://pathom3.wsscode.com/docs/plugins in general.
• More intentional, prolific, and shared naming of attributes (qualified keywords).
I wouldn't say I was a skeptic about Pathom, but it certainly is a different technology that takes some getting used to. It's a very powerful tool and I'm glad to have it rather than not. But just like any tool, it's not right for every situation, but when you find a good fit, it's amazing. But I'd say the most convincing thing is seeing it in action.
Thank you for the replies, I appreciate the time and thoughtfulness. I was looking more for advice on choosing between pathom 2 vs 3 and the tradeoffs for building something new.
On the good side I’d add that pathom3 has a great batching mechanism to solve the n+1 problem On the bad side authorization is tricky, and performance is low when dealing with hundreds of entity in a response