Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Did you change your software architecture due to monetary constraints?
8 points by _448 12 months ago | hide | past | favorite | 4 comments
Did you have to ever change your software architecture* due to monetary constraints? What was it that you wanted to do, but had to change it due to cost considerations?

* I am using software architecture as a broad term here to encompass DB design, backend architecture, choice of language(s), frontend architecture, framework/middleware choices etc.

At the start up I work at [0], we use an open source library I developed to run hydraulic models of water networks in JavaScript [1].

A hydraulic model may be between 1-10MB and the simulation results can end up being 100+MB of time series data.

Other vendors with proprietary engines have to scale up servers to run their simulation engineers and will store and serve up results from a database.

Having everything done locally means we only have to store a static file and offload the simulation to the client.

Because we've architected it this way our hosting costs are low and users generally have faster access to results (assuming they're running a moderately decent machine)

[0] https://qatium.com/

[1] https://github.com/modelcreate/epanet-js

In my personal application I use dynamic dispatch pattern to receive and process all micro services from a single function. I use web sockets now but before that I standardized on a single object shape using HTTP POST for everything. One way of doing everything that always worked to a single location.

I am trying to convince another party to follow that example because they have exceeded their service end point quota on AWS.

In that same application I came to the conclusion that HTTP was too expensive to maintain for various technical reasons specific to the project. I switched to web sockets for everything, which was very challenging, but it completely paid for itself.

I'm involved in building a backend right now for which I chose to use AWS ECS with Fargate containers for deployment, over some managed Kubernetes service like AWS EKS which would have been my first choice. Using ECS has been dirt cheap (<$5pcm) whereas AWS EKS is ~$75pcm per cluster, before you even start running any containers. I'm not completely sure it was the right decision as it's involved having to spend time getting familiar with ECS, but it seems to work well enough and cheaply for something which isn't making money yet. I probably could have provisioned a Kubernetes cluster myself using something like kops but didn't want to deal with the headache.

Another one is using Heroku (~$7pcm) over Vercel (~$20pcm) for deploying a simple website/CMS for a business (and therefore not eligible for Vercel's free hobby tier). I initially wanted to use Vercel but Heroku is actually fantastic if you're developing solo and don't need all the bells and whistles Vercel provides.

When doing solo side-projects that have no revenue streams, if something begins to cost money, I'll try and change the architecture so it doesn't cost money anymore.

It's sad, but I'd probably rather spend 4 hours migrating to a free-tier serverless environment... rather than pay $5 per month for a dedicated server...

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact