Hasura and Temporal: How to Make the Perfect Hamburger
May 1, 2023
Contextualizing the challenge I recently wrote about the challenges of trying to build a distributed microservices architecture on top of Hasura. When it comes to reading data, Hasura is one of the greatest technologies I've ever had the pleasure of building with. It provides powerful capabilities…
In Search of Style
Apr 30, 2023
Style is all around us, yet it can be hard to define sometimes! Naming Being one of the hardest problems in computer science, it's fitting that naming gets its own section. Names — of variables, functions, structs, fields, etc — are important. I recently found a comprehensive naming cheatsheet…
Polymorphism with GraphQL, Hasura, Genqlient, and Golang
Apr 30, 2023
Polymorphism reminds me of Randall from "Monsters, Inc." He can change his color and appearance to blend in with his environment. Similarly, polymorphic code relies on an abstraction that can blend in and be reused across situations. This post discusses a few strategies for polymorphism,…
Custom Customer
Apr 24, 2023
Enterprises that offer platforms or marketplaces for other institutions or businesses will inevitably face modeling challenges. How do you bring all of these entities under one tent? Do you create The Perfect Model™, the one-size-fits all approach? Is that even possible? It's the problem of…
Hasura and Microservices: The Good and The Bad
Apr 22, 2023
The Good Parts If you're interested in building an architecture consisting of microservices, SQL, and GraphQL, chances are you've heard of Hasura. For small teams that need to ship quickly, it's one of the best choices out there because: You get a GraphQL API over your data for free. You get to…
Fine-grained Authorization
Apr 12, 2023
With the recent malfunction of Twitter Circles (a feature that only shows your tweets to a select set of followers) we were reminded of the importance of data privacy. Breaches are bad! In the best case, users are left unhappy and trust in the platform erodes. In the worst case, you have legal…
Semantics of Light and Time
Apr 9, 2023
Light We're able to look up at the night sky and see distant galaxies because outer space is transparent, not opaque, to light. Light is able to pass right through out, with its path and properties largely unchanged by any encountered objects. This wasn't always the case. In the earliest years of…
Running microservices with Taskfile
Jan 6, 2022
In a polyrepo setup consisting of several microservices, the traditional method of running everything locally has been to use Docker Compose. A Dockerfile would copy in the dependency file (go.mod), download dependencies, then copy the source code, then build it... Then another stage of the…