Suggested directory / module structure for multi-channel app

I started my scheduling app with a basic app template for my app, it worked pretty well. Initially, it was only for IVR, now it started to add multiple channels (ivr, web, sms, etc). Each channel handles the user request differently and communicates the request in the requested channel, but all it does is scheduling. So, I started off with the following structure,








For me, appt is going to be the core module and will be used by all channel modules. ivr and web modules handles request from different channels. If someone requests for appt, how can I pass the request data to appt module and send the appt’s response back to user?

If it is, no module app, it would be an instantiation of model and assigning form collected values to model, validate them, save and send the response in the request synchronously. How I can do the same, if my module depends on another module to perform validation and other business logic?

Can anyone shed some light on my approach? Should I go with module and just go back with the plain single app structure?

Modules should not depend on other modules. Business logic could be extracted into domain layer and used from all the modules you need.