This document discusses REST (Representational State Transfer) and resource-oriented APIs. It notes that REST relies on a stateless and cacheable protocol. Resources can represent any concept that can be referenced, like documents, services, objects, or collections. Typical CRUD APIs use GET, POST, PUT, and DELETE on resources, but PUT can cause problems for complex state changes. Instead of PUT, it's better to POST new "event resources" that represent actions. This allows mutations to be first-class resources and avoids losing context of the original update trigger. Coarse-grained, resource-oriented APIs fit with approaches like event sourcing and CQRS. The granularity of resources is important to consider.