After years of wandering, I think Clojure/ClojureScript/Datomic are the right tools to build my systems — largely because of the community. The advent of LLMs makes a difference too.
The back end of my system will be a interrelated set of evolving knowledge graphs. Initially, the front end will be a chatbot.
If you’re interested, here’s a 1000-word backgrounder:
More Detail
About My Work
I am building a practice and software that create learning environments for families dealing with transitions of wealth. In the US alone, $58 trillion dollars is changing hands over the next 25 years. The vast majority of these transitions will fail (>80% conservatively). The financial losses are far from the most significant. The problems these families face are deep, wide, and legion. You can probably imagine more than a few. You’ve likely witnessed some first-hand.
These are very complex systems with functionally-overlapping, semantically-diverse paradigms:
- embodied individual survival structures,
- parenting philosophies (or lack thereof),
- life-long family dynamics,
- law,
- accounting,
- trust administration,
- asset management,
- C-suite concerns,
- addiction distractions,
- medical issues,
- psychology,
- philanthropy,
- religious convictions and strictures,
- and more.
These families have to try to make sense of situations they will only see once — and they usually encounter them very late in their lives. There are no practice runs or do overs, and essentially no warning systems.
My work is a calling, not an ambition. The only thing worse than pursuing it is not pursuing it. It is a difficult, unlooked-for odyssey — and now a central part of my life’s work. I am both reluctant and existentially committed.
Though wealth transition work is more than enough, I anticipate having an impact on other fields. The model has to cross disciplinary boundaries and is thus inherently integrative.
That’s the basics. There’s more I won’t share here.
Some Background
I graduated summa cum laude from Ohio State’s CIS program a long time ago (I’m 57). I’ve done database work for decades, from design and implementation to all sorts of administration. I’ve worked for USPS, IBM, AT&T, a bunch of .coms, and, most recently, single-handedly built a logistics dispatch and shop management system. I’ve also been through a multi-million dollar family wealth and enterprise meltdown. I was utterly consumed by that conflagration. I learned about the dearth of wealth transition resources from inside that dragon.
Through it all, I’ve been dealing with my oldest child’s spina bifida. Her condition has compounded life’s complexities. Her needs have roiled plans again and again. My two younger children have suffered from the neglect such demands engender. Marriage under these conditions is also very difficult. Most fail and I know why.
I’ve been taking runs at dealing with wealth transition issues for years because there are precious few integrated resources and essentially no tools (not counting genealogy diagramming programs). Standard ERD analysis doesn’t cut it. I discovered graph tech and ontological design about 8 years ago. Resources like Stardog and Protégé were still both new and niche. Folks still seemed to be recovering from the collapse of the semantic web vision.
Anyway, through it all, I’ve struggled to tack down a model that answered the needs. On top of it, I’ve never been a day-in-day-out app developer. As a consequence, getting a full system running has been tough. Ruby, raw D3, and yFiles on top of the OWL API among others have been too much for me. LLMs are making real-world implementation easier for a modeler type. Even so, without an interesting model, it was hard to justify enduring the learning curve to deploy anything.
After thinking I had to build on Apache AGE or Neptune or neo4j, my last draft of the model was in a much-evolved Stardog. While the reasoner is a compelling feature, the troubles were two fold:
- The number of languages is a pain. RDF, RDFS, OWL, and SHACL are all required just at the model level. I’d have to figure out application and UX separately, each with different communities or lack thereof.
- The Stardog community isn’t as broad or as welcoming as Clojure’s. From what I can tell, Stardog’s biggest customer is NASA. Maybe that’s where the name comes from? Anyway, neophytes have a tough time, at least I did. I just couldn’t seem to connect with anyone. I guess they are all on high-end, big-budget projects. And again, they can only help with the database.
I’m only one guy right now. I need leverage and community.
Where the Work Stands
I have a core model. It takes the shape of a set of knowledge graphs on the back end. I’m starting with a chatbot front end.Working with model content is next. For this round of understanding, I need real-world content from real-world users. There is no shortage of test subjects or situations for modeling. The consultancy and tooling have to evolve together.
I have local-dev working. I’m now banging away at AWS so I understand that architecture and security model. As Stuart Holloway says, AWS really is a web-based OS. Getting a system working feels like climbing an Alps-like learning curve. It is a discomfort with which I’m unenthusiastically comfortable. Fast is slow and slow is fast.
Why Clojure/ClojureScript/Datomic
While I don’t consider myself qualified to judge, here’s what I see…
At the highest level, it’s about culture and philosophy. Clojure and Datomic seem to be the products of a coherent, cohesive vision — a vision that is practical, human, and (hopefully) comprehensive. Integrated thinking leads to integrated environments. Given how big this is to me, I need every bit of leverage I can get. That’s why I’m here. So far, it seems to be a sound decision. It feels like watching one of those movies where the writer and director are the same person. Am I worried about Rich leaving? A little. I can only trust he saw to a governance structure. My experience with succession engenders sensitivities. We’ll see what the spidey sense says.
In short, Clojure’s full(er) stack and unusual culture and community lead to my investment here.
Thank You
This community is different. I’ve already benefited far more than I could have hoped. I’m eager to help where I can. As corny and unprofessional as it sounds, this feels like a long-term home. I think this project is finally doable. Thank you.
I’m hanging out on Slack, too.
edit: add link to Slack profile