HTTP requests, HTTP responses, cookies, sessions; multiple protocols[3] HTML/XML, REST, ATOM and RSS, RTF and CSV, JSON, JSON-RPC and XML-RPC, AMF-RPC (Flash/Flex), and SOAP;[4] CRUD API; multiple authentication mechanisms and role-based access control; database abstraction layer (DAL) that dynamically generates SQL and runs on multiple compatible database backends; RAM, disk, and memcached-based caching for scalability; internationalization support; jQuery for Ajax and UI effects; automatic logging of errors with context.