←back to thread

1226 points bishopsmother | 1 comments | | HN request time: 0.204s | source
Show context
ChrisMarshallNY ◴[] No.35047455[source]
Well, I feel for them. Scaling up is a bitch.

I've been lucky, in the past, but a lot of that, is because I have "overengineered," and the tools/frameworks have advanced to meet the new demand.

I am in the middle of a complete, bottom-to-top rewrite of the app we've been developing for the last couple of years. It's going great, but making this leap was a fraught decision.

It's mainly, so I wouldn't have to write a post like that, in a year or two.

We spent all the time refining it, until we had what we wanted, and it worked great on our small test team.

Then, I loaded up a test server with 10,000 fake users, and tossed the app at that. To be fair, we don't think we'll have even that many users for quite a while. It's a very specialized demographic.

* SOB *

It no do so well.

At that point, I had to decide whether to fix the issues (they were quite fixable), or revisit the architecture.

The main issue with the architecture, was that it was an "accreted" app, with changes gradually being factored in, as we progressed. The main reason for this, is because no one really knew what they wanted, until we ran it up the flagpole (sound familiar?).

The business logic was distributed throughout the app. That was ... ugly.

I envisioned myself, a year or two down the road, sucking on a magnum, because the app had turned into a Cruftosaurus, and was coming for me in my nightmares.

So I decided to rewrite, as we hadn't done any kind of MVP or public beta, so we actually had the runway to do this.

I refined the entire business logic of the app into a single, platform-agnostic SPM module, which took just over a month, and have started to develop the app around that. It's pretty much a rewrite, but I am recycling a lot of the app code. We also brought in our designer, and he's looking at every screen I make. It's working well for him.

Like I said, it's going great. Better than I expected.

I know that I have a huge luxury, and I'm grateful. I can credit a lot of that, to doing some stress-testing before we got to a point where we had a bunch of users to support. I was able to go in, and go all Victor Frankenstein on the model.

The result, so far, is that this thing screams, and you don't really even notice that there's that many users on it. The model has already been proven (that SPM module), and all we're doing, is chrome (which is a ton of work).

replies(2): >>35048055 #>>35049493 #
bbkane ◴[] No.35048055[source]
Hope this isn't a dumb question, but what's an "SPM module"?
replies(1): >>35049218 #
1. ChrisMarshallNY ◴[] No.35049218[source]
Sorry. Apple-specific.

Swift Package Manager.

https://littlegreenviper.com/series/spm/

The only dumb question, is the one I don't ask.