Dime.Scheduler is built with performance and scalability in mind. It is therefore based on a loosely coupled architecture that separates the main planning application from the connected plugins (responsible for interacting with external applications).
As a result of this loose coupling, the system is broken down in a series of subcomponents with their dedicated roles:
- Dime.Scheduler SQL database: Storage of the planning data.
- Dime.Scheduler website: The main planning application.
- Dime.Scheduler Service Bus: Publishes messages to the registered plugins.
- Dime.Scheduler plugin database: Storage of the data needed for sending data back to the back office application(s).
- Dime.Scheduler plugin Windows service: Plugin for sending data back to the back office application(s).
- Dime.Scheduler plugin website: Application for monitoring and reprocessing data sent to the back office application(s).
A plugin is any system that is in charge of receiving messages from Dime.Scheduler and pushing it into the connected system. Examples of a Dime.Scheduler plugin include the Microsoft Dynamics 365 Business Central plugin and Microsoft Exchange plugin.
All components can be installed on different servers but to keep the deployment of the application simple, we recommend to only split the application components from the database components. Needless to say, we recommend to use different web servers for test and user acceptance environments.
Dime.Scheduler's modular and distributed architecture has many upsides. For one, the main planning application of Dime.Scheduler is platform agnostic, as in it has no knowledge of Exchange or NAV, Business Central. It does not even know which applications make use of the events it publishes. This makes it very easy to add plugins to the ecosystem without changing one bit in the architecture:
While the architecture allows for massive scalability and simplifies cloud deployments, it also means that there are a few more moving parts in play. Not to worry, the installation center takes care of most of the work.