Row inserted to DB in main app is not available in the different process. Can MySQL defer some queries? I have such problem. My main app process some request and insert the new row into DB, then send an Event to the queue. I have the different process that listens on that queue and when he get details about an inserted object and try to get it from DB, DB returns empty row. I wrote an algorithm with backoff and usually after 3 or 4 times, I manage to get that row. 
And my question is, are they some default caching mechanism in MySql that cause it.

I am using Laravel 5.0 as app framework, MySQL 5.6.38 as DB and
Use Innodb.

Do not use LOCK TABLES.

Do

BEGIN;
-- some SQL statements that need to be treated atomically:
INSERT INTO my_table ...;
INSERT INTO my_queue ...;
COMMIT;


By using BEGIN and COMMIT, you can ignore the setting of autocommit, which may be tripping you up.

There may be some tricky business going on in the queue; please show us the SQL for enqueuing and dequeuing, pluse SHOW CREATE TABLE.