On the Dart page, when the UI requires information from the backend, an **Event** is dispatched to the **Bloc**. The Bloc then creates a **Request** and passes it to a **Repository**. The Repository then communicates with the [Restful Server](Restful Server) which uses [Controllers](Server Components#controllers) to accomplish the task for the request.
As an example, the following code requests information about the majors and crews when creating a player: