Here is my situation:
I work with two SCRUM teams, iOS and Android
Each of the SCRUM team has its own Product and Sprint backlogs
We have shared Sprint Plannings, Reviews and Retrospectives (both teams attend) so that the products can stay aligned and that a given team can benefit from the knowledge of another team in tackling a specific problem as well as in story point estimation
Because the roadmap and features of both iOS and Android are pretty similar, both products are sharing the same backend engineers as resources. As a result, we create backend subtasks for given user stories in sprints and backend engineers attend Sprint Planning as part of the cross-functional team.
By backend work I mean server side work. We're talking about mobile apps here, so anything related to user management for instance. i.e. let's assume a user wants to delete his profile but he can't yet. A user profile deletion CTA would need to be available on the client, but it would need to work with HTTP requests to the server. So here, as part of the same user story ("as a user, I want to be able to delete my profile), we would have both client and server work together.
These backend engineers are mostly a resource for the mobile products, as we are a mobile-focused startup.
Should backend have its own backlog, separate of the mobile teams, or only be considered the owner of backend subtasks in each of the mobile teams' sprints?