In SKYVVA, Integration is created to integrate data. To bind all interface which has same logic, we create group. create the interface group directly from the tab ‘Interface Group’ from the Batch Control Board.
Interface group #
Interface group is a unit to group logical interfaces together. For example you can group interfaces which is related to each other e.g. Account and Contact to one interface group. Interface group is the object user define at configuration time.
#
Before create interface group, there are some properties you must know:
1. Interface Group Name:
It’s a name of interface group. The name will be used as a part of the queue name.
2. Integration:
This is the integration. You create an interface group which belong to an integration. Only one interface can belong to an interface group and an interface group only also belong to an integration. The value of the integration you select here will be part of the queue name..
3. Type:
This is a type of the interface group. The value of group can be(EO,EOIO).- EO: Exactly Once
– EOIO: Exactly Once in OrderWhen you create an interface group with type EO this interface group will be processed in a exactly once manner e.g. the order will not be guaranteed. If you want to keep order sending from the sender application you have to define this group with EOIONote that both type define a processing which is asynchronous. The type will be part of the queue name.
4. Priority
This property will allow you to define what priority you want to set for your interface group to processed faster. There are 3 types of Priorities such as:- High
– Medium
– LowWith this property you can define that interface group A is to be processed faster as interface group B by setting for interface group A = High and interface group B = Low or Medium.
The available batch apex job is 5 at that time. But for priority High the max parallelism will be 5 because the counter setting for priority High is 5. The general for how many batch apex job will be used depend on following rule for processing queues:
- Number of available batch apex job
- Current number of counter stand of the priority class
Note that processing over different integration has more priority than over queues within an integration because the processing begin first with the selection of the integration and then of queues. Lets looks to this example where we have 7 integrations which all have data in all priority. Furthermore each integration has different queues.
Assume in this example that all 5 batch apex job are available. When the scheduler SCHED_1 start for the integration group IG_1 it will select integrations and assigned to each integration 1 batch apex job. Therefore all 5 batch apex job is assigned like this: I1 -> AP1, I2 -> AP2, I3 -> AP3, I4 -> AP4 and I5 -> AP5. Because we have max. only 5 batch apex job integration I6 and I7 don’t get batch apex job
Page 57
assigned to them. In this example each integration have different queues and those queues could be processed in parallel. But because all batch apex job was assigned to the integrations there are no more than 1 batch apex job available for the processing of queues. Only one queue can be selected and this will be the High-Queue from each integration. The parallel processing of queue is not possible due to lacking of batch apex job.
5 .Package Size:
This is the number of records to bundle together and pass to a batch worker because of the optimization.
6. Number of Records per Batch:
This property indicating the number of records to be processed per execute() used for basket processing batch.
Types of interface group #
There are two types of interface group which are Business related logical group and Technical group. This section will be explained in detail what these interface group types are.
Business related logical group
This group is business related since the contact can only be posted after the account has been posted ( when you put the interface account and contact to one group). It’s all about an order of business process. To keep this order you can define the group and set the property to “EOIO”. When you set this way the account will be posted before contact interface.
e.g. the group “Account_Contact”. This group is business related because the contact can only be posted after the account has been posted. In this example there is an order of business process. To keep this order you can define the group “Account_Contact” and set the property to “EOIO” meaning Exactly Once In Order. In this way the skyvva runtime ensure that the account will be posted before contact interface.
Technical group
The technical group is to increase the performance for the posting of data. You need to create this group to group the interfaces which are not related to business and these interface is quite small. Without wasting time and resource, you can sent these interfaces once in same time by set this group to “EO”.
For example,
The technical group is for example to increase the performance for the posting of data. Imagine that you have five interfaces which do not related in a business way to each other. Those 5 interfaces are quite small e.g. small amount data will be send to Salesforce. In this example you will waste resource and time when you create five interface group for each interface and post the interface separately.
The best way is to put these five interface into the same group and set the property of this group as “EO” meaning Exactly Once. This mean that the processing of those five interface in the group is not important. An overtaken can be happened and will not harm the business. By putting them together the scheduler will process much more data in one run than if the scheduler process them separately.
How interface group is used? #
Follow the given steps to create Interface group:
Step1: Go to batch control board.
– Open “Interface Group” tabs
– Click on “New Interface Group” to create a new one
Step2: Fill the fields as shown in screenshots:
– Enter a name for an interface group.
– Then select the integration where the interface group belong to.
– Choose the type of the interface group
– Select the priority for the interface group then click Save
Step3: Add Interfaces
– Click on “Add Interfaces” to add interface to the group
– Select the interface you want to add to this new interface group
Step4: Here is the result of creating an interface group
When to use interface group #
Interface group is used when you want to speed up interface processing. You can manually create interface group and assign the interfaces which you want to run beside the default IG.
We have to create an interface group. This is an optional step because the Skyvva engine create a default interface group for each integration. This default interface group contain all interfaces existing in an integration. For each interface group the Skyvva runtime will create a corresponding queue and inherit some property from the interface group to the queue. For example the queue will become the type attribute e.g. EO or EOIO and the priority e.g. High, Medium or Low from the interface group.
Since the Skyvva default group contain all interfaces from an integration the Skyvva default queue bit complex queue for processing the attachment data. Therefore we recommend to create suitable and appropriate interface group to have an optimal way for queue processing.