When choosing between the Firebase version or the GCP version of tools, we tend to pick the Firebase version, as it's often simpler and nicer to work with.
App engine fills in the gaps in the increasingly smaller case where it's necessary for us to run our own APIs.
All comments, votes, and other actions live here as a highly-scalable, reliable, multi-region storage solution.
This is our primary database, though most of our actual data is stored in static storage. This database houses the metadata necessary for indexing and finding static data.
Certain events need to both happen asynchronously and also be guaranteed execution even in the face of errors. Pub/Sub accomplishes this miraculous feat.
Running background triggers based on events provides a simple, scalable way to create complex interactions.