[frameworks] What is middleware exactly?