chain of responsibility pattern by the less frequently used handlers (use this only when the order of execution of the handlers does not matterwhen the order of the handlers has some sort of meaningyou could get some improved performance using ideas from the previous and caching the results of certain handled requests we never want to completely ignore requestso you must make sure to have some sort of end handler serving as catch-all for the chain toat the very leastalert you that the request was not handled by any of the handlers in your chain in the examples from this we had the chain execute until all the handlers had look at the request this does not have to be the caseyou can break the chain at any point and return result the chain of responsibility pattern can serve to encapsulate processing of elements into pipeline (like data pipelinefinallya good rule of thumb is to use the chain of responsibility pattern wherever you have more than one potential handler for requestand thus do not know beforehand which handler or handlers would best handle the requests you will receive exercises look at sqlalchemy and create an interface to an sqlite database where you store basic user data expand the user class function that retrieves the user so it uses the sqlite databaseas in the previous exercise add the logger you built in on the singleton patternto the chain of responsibility of your web application so you can log the incoming request and the responses sent back to the client implement your web app from this using the dispatcher implementation of the chain of responsibility