- ile funkcjonalności po stronie klienta (bezpieczeństwo klienta v.s. ochrona serwera przed przeciążeniem)
- ograniczenia technologiczne po stronie klienta
- zapewnienie wydajności komunikacji (redukcja ilości przesyłanych danych)
- zapewnienie synchronizacji przetwarzanych danych (identyfikacja obiektów danych, synchronizacja rozproszonej bazy danych)
- zapewnienie skalowalności systemu (architektura wielopienna, równoważenie obciążenia)