title: Is it needed to separate APIs for client and admin part
body: <p>I'm thinking about following task. In my project I have 2 parts:</p>
  
  <p>1) an API with using by Android client<br>
  2) a back office (admin part)</p>
  
  <p>My idea is to separate these two APIs from each other. By "separate" I mean that all services and database layers should be unique for Client API and Admin API.</p>
  
  <p>The structure of projects will then be like this:</p>
  
  <p><strong><em>MyProject.FrontOffice.API<br>
  MyProject.FrontOffice.Services<br>
  MyProject.FrontOffice.Data</em></strong> </p>
  
  <p><strong><em>MyProject.BackOffice.API<br>
  MyProject.BackOffice.Services<br>
  MyProject.BackOffice.Data</em></strong></p>
  
  <p>Both projects are in one solution, but the problem is that quite big part of code will be duplicated in both parts.</p>
  
  <p>The second idea is to not separate it and resolve it using load balancers (it will balance between several instances of the APIs; Some for the Client and some for the Admin part).</p>
  
  <p>What do you think which approach better and why?</p>