Don't Let Architecture Astronauts Scare You (2001)
joelonsoftware.com
joelonsoftware.com
I have a hard time knowing if I am going to need something in the future or if something is "YAGNI."
I'm not sure if the issue is more common in web applications than in other types of applications, but every choice I make feels like a catch-22. If something is not modular enough, then I may regret one day. If something is too complex, I may also regret it one day.
The famous "what if" driven architecture:
- What if we get 10k concurrent users tomorrow? Everything needs to be CQRS event-driven, HA queue backed, produced and consumed by a fleet of microservices or it wont work perfectly!
- What if the user loses their internet connectivity while submitting this mundane form? We need localstorage backup for all CRUD operations and implement custom conflict resolution logic for each POST/PUT/DELETE.
I mean, yes we can try to tackle all possible issues and outcomes in our timeline but the sun would have cooled down by the time we are done.
Sometimes, well most of the times, you just gotta keep the project focused and 80/20 it.
I had at least won that one... the id's will be date driven, natural keys per account and return a 404 if it doesn't exist yet. They'll still get a notification (web-hook) when the event for creation happens, but still far less complex then temporary id's that only work once, and require manual intervention if something breaks and needs to repeat.
I absolutely hate unnecessary complexity and tend to fight it at nearly every step.
If I didn't need the income, I'd be working on an email/calendar platform to replace Outlook+Exchange/O365. It's a space begging for disruption and not enough focus on some of the more critical needs that they provide that competitors tend to miss. Google comes the closest IMO.
I never did find out if the test was to recognize that the number was off-the-walls crazy and that this would be the largest platform on earth by a substantial margin, or if they really thought that was a reasonable number. I suspect it's the latter :-/ I didn't get hired anyway, so...
I've also seen microservices for B2B software with low-hundreds of users. If the number of users is within an order of a magnitude of the number of services, then your developers are in need of adult supervision and a spanking.
Yes, and that is how things like VPNs, Tor, BitTorrent (but more broadly, P2P file sharing/downloading), Bitcoin (but more broadly, cryptocurrency/blockchain) and (more recently) Decentralized (aka "anti Big Tech censorship") Video/Content Sharing -- were all invented...
So the secondary purpose of P2P was bootstrapping, the primary was to evade the law.
Later, after the music industry learned their lesson, a business like Spotify could emerge that cooperated with content producers. Of course then they didn't need any exotic architecture anymore, because the primary reason for that architecture was gone.
it’s always heartening to see things like this:
All they’ll talk about is peer-to-peer this, that, and the other thing. Suddenly you have peer-to-peer conferences, peer-to-peer venture capital funds, and even peer-to-peer backlash with the imbecile business journalists dripping with glee as they copy each other’s stories: “Peer To Peer: Dead!”
for the simple fact that it’s a reminder that if we have indeed strayed from the light, we did so long ago.
This was also back in the day when the average computing device felt like capital accessible to the common man, machines which could be wrangled into solving your own problems on your own terms.
That's in contrast to a curated service graciously permitted by The Powers That Be, which doesn't do anything that's good for you that isn't also good for them.
I feel like I may have missed the whole Single Page Application (SPA) boat. I am not saying that SPAs are still not popular or anything. But rather, I have started to see more push back against them or more people starting to look into alternatives like HTMX, for example.
So, I never took the time to learn SPAs and my employer doesn't use them. At times in the past, I would be lying if I said I didn't have a bit of FOMO. However, if the pendulum truly does swing away from SPAs, then I might feel a bit vindicated in my apathy.
At least federation is a compromise. Techies still run servers but their friends no longer need to.