Oczywiście serwery należy projektować oraz programować bardzo starannie, aby uniknąć zależności cyklicznych. W celu wyjaśnienia problemu rozważamy przykład serwera plików korzystającego przy obsłudze żądań z serwera czasu. Cykliczna zależność może powstać wówczas, gdy serwer czasu korzysta z serwera plików. Załóżmy na przykład, że programista ma zmodyfikować serwer czasu tak, by zdefiniował on informacje o wszystkich obsłużonych żądaniach. Jeśli programista zdecyduje, by serwer czasu kontaktował się w tym celu jako klient z serwerem plików, to może powstać zależność cykliczna – serwer plików wysyła. Skutek jest katastroficzny, a jego natura jest podobna do nieskończonych pętli w programach.
Zależność między dowolną parą serwerów mogą być łatwe do wychwycenia i usunięcia, jednak większe zbiory wzajemnych zależności mogą być trudniejsze do wykrycia. Wyobraźmy sobie hipotetyczny cykl zawierający tuzin serwerów, każdy działający na innym komputerze. Jeśli każdym serwerem zajmuje się inny programista, to zależność między nimi mogą być trudne do zauważenia.
Interakcje i zależności cykliczne





