title: is it good to make Data Access Layer a separate layer from service layer
body: <p>I am having a question about the architecture I am working with.</p>
  
  <p>we have a backend restful service, a data layer(which is implemented by python eve and also a restful service), and the database. The data (access) layer itself is a independent restful api.</p>
  
  <p>In our backend service application, we have a customized python eve repository which make calls to to data (access) layer and then data layer will query whatever asked by the call from database.</p>
  
  <p>The reason to have it separate, one is that we want to isolate data logic(query logic) from our business logic(backend service).</p>
  
  <p>The cost is obvious, another layer, another round of I/O for every query. </p>
  
  <p>Can anyone with experience of architecture tell me is this separate data access layer a good practice or not and why?</p>