The db_schema_whitelist.json file is a way of telling Magento which tables and columns it can safely alter using the db_schema.xml file. It displays the changes you have made using any method. It was added to preserve backward compatibility and will be removed in a future version when the install/upgrade script is no longer supported.
In the current dual state where tables and columns can be added/altered/removed either via setup scripts (those located in the Setup folder) or via the new etc/db_schema.xml files, Magento can not know by itself which tables/columns can be safely altered using only the db_schema.xml files. Hence, the db_schema_whitelist.json holds a list of all the DB tables, columns, indexes, constraints, etc that were created via declarative schema and can therefore be safely altered in case it detects any change for those elements in an upgraded db_schema.xml file.
Since private content is specific to individual users, it is reasonable to handle it on the client (i.e., a web browser).
Use our customer-data JS library to store private data in local storage, invalidate private data using customizable rules, and synchronize data with the backend.
Magento 2 message queue is a great feature introduced in the new version of the platform. Magento supports MySql and RabbitMQ based message queues. In the example, described in this article, we are going to use Magento 2 RabbitMQ.
Hope it makes more sense now. To know for about the Magento 2 message queue refer to this link
https://www.atwix.com/magento-2/getting-started-with-message-queues-in-magento/
Thanks.