Half-Sync Half-Async architectural pattern
Synchronous application - Creating synchronous services is easy for developers, as they follow a single execution path. Debugging is also easy, as developers know the execution flow by seeing the code. Creating only synchronous services is not good (primarily if your OS and HW supports event-driven architecture, it is okay if you have an embedded system with limited space and no multi-threading environment), as it is slow and time-consuming, synchronous way of execution slow down your application. Asynchronous application - Creating a fully asynchronous system is not always possible. Though they are fast and efficient. But hard to develop, especially when the user is actively involved/interacting with your application. It is challenging to create asynchronous, high-level (or say user level) APIs. But asynchronous way speed up the execution and your application become faster if you develop an excellent asynchronous model. Mix of synchronous and a...