Decompose the Chat App by Capability
Work from the brief alone. Write what you would produce — actors, requirements, data, a first slice, your unknowns — before opening anything below it; the exercise stops working if you read the reality first.
A colleague has decomposed "build a chat app" into Frontend, Backend, Database and DevOps. Redo it by capability, with every leaf testable, draw the dependency map, and pick the first slice. Then say what the layer decomposition is still good for.
Your attempt
Nothing here is checked. It exists so that the reveal below is a comparison rather than a reading.
Splitting Backend into microservices — users, messages, presence — and calling that the capability decomposition. It has capability names on deployment units, it adds a network between things that have never been built, and it still has no leaf that says what happens when Bob is offline.
Read this even if you are confident. It is here rather than behind a button because it is the move most people actually make, it produces things that look like a project, and its cost arrives when the first hard requirement has nowhere to go.