It uses a P2P system, FDev dont even know if were playing or afk when in an instance.
There's still low volume server traffic going on pretty much continuously when alone on a planet surface - presumably things like battery usage, position, etc. being synced up with the servers so that we don't suddenly teleport three kilometres in the event of an unexpected disconnect.
There's nothing technically stopping them taking our player positions, and spawning NPCs with the same name and ship parameters in the same location while we're offline (or even in separate modes while online). Obviously nothing which happened to the NPC would affect the player it was based on in the slightest, and its movements once spawned would have nothing to do with what the player was doing.
It's not a pure P2P system - our savegames are held on central servers and continuously updated there (including while we're offline!); lots of information about the galaxy is dynamically downloaded from those servers rather than being computer-generated. That information could then be used in a variety of ways.
Fleet Carriers (or other equivalent player-owned persistent assets) were long-held by some posters to be impossible "because P2P". And yes, there are differences between a station-like asset and a POI/USS signal source, but as our client gets told about the location of both of them by the central servers, that's not an important distinction if Frontier wanted to go down this route, and the fact that communication between players in the same instance is P2P isn't relevant to that.
P2P doesn't stop us seeing other player's first discoveries whether or not that player is logged on, whether or not that player is on the same platform - CMDR Validating errors aside, and having that information regularly updated. Similarly, when we look at the galaxy map or the comms tab or the social menu and see the locations of our online friends ... that's sent by the server, not by the game attempting to negotiate P2P connections with each of those other players to ask them where they are.
Now, personally, I don't believe they
should go down this route - imagine how bad parking would get at busy stations if you had to wait for all the player-based NPCs to leave first every time you entered the instance! But there's really no technical reason that they
couldn't do it.