The purpose of the Email Listener synchronization service is to synchronize Creatio with MS Exchange and IMAP/SMTP mail services using a subscription mechanism. This is the only method of working with mail services. Working with mail services without the microservice is not supported.
The components of the Email Listener synchronization service are as follows:
- Email Listener primary module.
- NoSQL Redis DBMS.
- Email Listener secondary module.
The workflow of the Email Listener synchronization service is availbale in the figure below.
Email Listener module
The purpose of the Email Listener module is to use the mailbox credentials and create a subscription to “new message” events. The open subscription remains in the component memory to ensure fast response time when new emails arrive. When a corresponding event is received, the email instance loads.
NoSQL Redis DBMS
The purpose of Redis NoSQL DBMS is to enable creating a scalable and fault-tolerant system of processing nodes. The Redis repository holds information about the served mailboxes. This enables any container to process Creatio queries for adding a new subscription or check the status of a specific subscription regardless of the subscription node.
Requirements to Redis:
- Authorized access of the Email Listener service to Redis.
- A separate database available for the Email Listener service operation.
Email Listener module
The purpose of the Email Listener module is maintain scalability and fault-tolerance of the Email Listener primary module. The secondary module downloads emails from the mail server and delivers them in the Creatio application. This smoothes out processing peak mail flows for high-load services due to the API components not participating in downloading. They are less busy and thus available for subscription and sending emails instead. The original service component. Relpaced with the primary module when unavailable.
The purpose of RabbitMQ is to maintain scalability and fault-tolerance of the service. The message broker distributes tasks between the components in high-load environments. The original service component.
By default, separate nodes of the StatefulSet type process requests based on 1 handler instance per 50 active mailboxes. The number of replicas depends on the replicaCount parameter. You can increase the number of processors by specifying the needed value. You can configure automatic scaling depending on the number of active subscriptions.
Compatibility with Creatio products
The Email Listener synchronization service version 1.0 (MS Exchange support) is compatible with all Creatio products of version 7.15.2 and later.
The Email Listener synchronization service version 2.0 (IMAP/SMTP support) is compatible with all Creatio products of version 7.16 and later.
We recommend using the Kubernetes orchestrator and Helm package manager to deploy the service and ensure the operation of the application in the production environment. Learn more about deploying the synchronization service via Kubernetes a separate article: Deploy the synchronization service via Kubernetes.
You can also use Docker to speed up the deployment in the development environment. Learn more about deploying the synchronization service via Docker in a separate article: Deploy the synchronization service via Kubernetes.
An in-memory repository is sufficient to deploy the service.