Skip to content

Instantly share code, notes, and snippets.

@bnolan
Last active May 29, 2019 02:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bnolan/874986afc05f52093d657423da63b98b to your computer and use it in GitHub Desktop.
Save bnolan/874986afc05f52093d657423da63b98b to your computer and use it in GitHub Desktop.
# MOMS Architecture - Monolith with Opensource Microservices

These are my thoughts on the MOMS architecture:

Monolith with Opensource Microservices.

Basically, you write your app as a monolith because its quick and easy.

And when you have a subsystem of sufficient complexity and independent enough (doesn’t require being deeply enmeshed in your app), you split it out to a microservice that you opensource.

By opensourcing it, it makes you think of how other people might use it, so you make the APIs a bit more generic, you document it better with a readme, and you standardise the deployment so it’s easy for you to deploy.

The opensourcing has real benefits, even if no-one ever sends you PRs.

MOMs.

@purcell
Copy link

purcell commented May 29, 2019

Yeah, if there's a slice of your app for which you would use a hypothetical upstream hosted or installable API product, then that slice is a great candidate for splitting out. You could always do this using code modularity within your monolith, but making it completely separate formalises the split, whether or not you open source it: it's a self-imposed barrier to tangling things up in future when doing so might feel like an expedient hack! Open sourcing it keeps you even more honest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment