# 3.2.2.Client-Server

* **Separation of concern of client and server**
  * For server/ API Provider
    * Performance
    * Scaling
    * Authentication & Authorization
    * Data cache
    * Data security
    * Database
  * For client/ API Consumer
    * User Experience
    * User Interface
    * Multi form factor support
* Client - Server
  * Client and server do not reside in same process (server decoupled from client)
    * They are not sharing any code within the same process
      * e.g. Use RPC between client and server

        ![](https://163116165-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G7tIs4o9F9vSrao%2F-M4M0IVB0ax0vs2ocz_r%2F-M4M0WyBQ4StE4cKzKJy%2F2.jpg?generation=1586302964882627\&alt=media)
