Thats because atproto server is the wrong conceptualisation of how atproto works.
activitypub takes all the individual components (data storage, identity, aggregation, rendering) into a single server monolith. atproto takes all the components apart (pds, plc directory, relay, appview) and makes them individually available.
there are quite some (1k+) independent PDS's, a few backup plc dirs, ~20 relays, and 5+ appviews for other products