My friend and I routinely have conversations about factory design.
His ideal factory ships every ore in its raw state to a single building, which can then move the ore to different floors/sections for processing. He goes further than most and separates each product into its own "room", so all steel bars are made in one room then shipped to the steel beam and steel pipe rooms. Importantly the factory should be designed so that you can "infinitely" expand a room if you need more of that resource.
I prefer what I call "microfactories", where each component is created in a small, independent factory and the result is shipped to a main repository for builder use and for the space elevator construction. If you need modular frames, for example, you would find a group of ores and build a small factory on it and build every sub-component you can in it. Ideally, it would not rely on any other microfactory's outputs, but sometimes that's easier said than done. Often I will have a small cluster of microfactories all dedicated to shipping their output to a final microfactory for processing.
So what do you all use?
Note: He claims his design is more analogous to microservices (from software architecture) than mine, and that mine is something apparently called "pirate architecture". I think he's out of his mind on that one.
On our shared server there's a big emphasis on anesthetics so I usually build relatively small independent standing factories - but sometimes these factories will do something like bringing smelted iron ingots into modular frames while as other times they'll just be focused on a single step.
I think the microservice approach is more likely to be vulnerable to unbalanced ratios if that's a thing you care about - having a belt of iron feeding into a full balanced chain to produce frames is easier to balance once and never worry about again.