      Middleware can be built to support :ref:`both sync and async
      <async-middleware>` contexts. Some of Django's middleware is built like
      this, but not all. To see what middleware Django has to adapt, you can turn
      on debug logging for the ``django.request`` logger and look for log
      messages about *`"Synchronous middleware ... adapted"*.
  
  In both ASGI and WSGI mode, you can still safely use asynchronous support to
  run code in parallel rather than serially. This is especially handy when
  dealing with external APIs or data stores.
  
 
</s> remove   attacks. *This check is removed in Django 3.0 as the ``X-XSS-Protection``
  header is no longer honored by modern browsers.*
 </s> add   attacks. *This check is removed in Django 3.0 as the* ``X-XSS-Protection``
  *header is no longer honored by modern browsers.* </s> remove   '<alias>'. See also :ref:`mysql-sql-mode`.
 </s> add   ``<alias>``. See also :ref:`mysql-sql-mode`.
    messages about *"Synchronous middleware ... adapted"*.
      Middleware can be built to support :ref:`both sync and async
      <async-middleware>` contexts. Some of Django's middleware is built like
      this, but not all. To see what middleware Django has to adapt, you can turn
      on debug logging for the ``django.request`` logger and look for log
    messages about *"Synchronous middleware ... adapted"*.
  
  In both ASGI and WSGI mode, you can still safely use asynchronous support to
  run code in parallel rather than serially. This is especially handy when
  dealing with external APIs or data stores.
  
keep keep keep keep replace keep keep keep keep keep
 Fixed some formatting issues in docs. 
docs/topics/async.txt