The core should just be responsible in managing the database library. The frontend should be decoupled. The core could offer its services via socket.