At Facebook, GraphQL is used to organize data and business logic in a thin API layer. The company uses a single source of truth for fetching data, where each type of object has its own model code that handles permissions and authorization. This approach allows for efficient batching and caching, both on the server and client-side. Dan Schafer, who gave a talk about Facebook's GraphQL organization, emphasizes the importance of separating business logic from the API layer, making it easier to change or replace either component without affecting the other. He also discusses the use of IDs in GraphQL, highlighting their potential as refetch identifiers and the need for globally unique IDs to facilitate caching and batching. Overall, Schafer's talk provides valuable insights into how Facebook organizes its GraphQL code, emphasizing the importance of a clean separation between business logic and API layer design.