DEV Community

Discussion on: Is The Web Forcing Us to Split Applications the Wrong Way?

Collapse
 
qm3ster profile image
Mihail Malo • Edited

separate repositories, written in different programming languages, managed by different teams

  1. Separate repositories: Don't have them in separate repositories :D Some will argue that monorepos aren't really useful as in real products you have gradual rollouts. But all that means is that they are not a panacea, not that they are unusable. And I didn't say monorepos, I just said not to artificially fragment a single feature. Repo-per-feature will never suffer from multi-day rolling deployments or VCS scaling problems that repo-per-company might. Still, split when you actually need to, and not earlier than that. Splitting is much easier than reuniting living repos.
  2. Different programming languages: Try to have some portable parts, such as JSON Schema / GraphQL / ProtoBuf for structure and validation, as well as isomorphic rendering if you need to have SSR. I am still wary of isomorphic business logic, because that causes you to have it in the lowest common denominator: JS. Hopefully the proliferation of WASM will fix this.
  3. Managed by different teams: Mingle the teams. Make sure they have all the affordances to directly communicate, without intermediaries or slow process. In the future, focus teams on products, not layers. If necessary for your case, have some infrastructure teams that assist all product teams.