Dividing your architecture into separate components will probably cause you more downtime and have much worse performance.<p>Less servers and components mean less things to break.<p>Grab a dedicated server and host your shit on it (have a DB replica because losing data sucks, but that is easy). You will be able to run like that for <i>much</i> longer than you probably suspect and the chance of downtime will be massively reduced.<p>Why? Because a single server has a very low chance of having anything going wrong.<p>Not only that, but there is a lot of overhead in performance when you split everything up into components. You will be surprised how many requests you can handle on a single inexpensive dedicated server when you haven&#x27;t put too much effort into &quot;architecture&quot;.<p>When you actually find yourself running out of headroom on that setup you will know much more about your application and it&#x27;s requirements then you did at the start, so you will have a better idea of what to split out, and a better understanding of what parts of your app need more performance anyway.