You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/guides/dam-connection/technical-stack.md
+13-11Lines changed: 13 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# Define the technical stack of your connector
1
+
# Define the technical stack of your App
2
2
3
-
Now that your PIM and your DAM are [well prepared](pre-requisites.html) for their connection, it's time to dig a bit into the technical stack you are going to choose for your connector.
3
+
Now that your PIM and your DAM are [well prepared](pre-requisites.html) for their connection, it's time to dig a bit into the technical stack you are going to choose for your App.
4
4
5
5
## On the PIM side
6
6
@@ -11,7 +11,9 @@ We will never repeat it enough: the REST API is the **most stable** way to conne
11
11
Also, and it is quite important to keep it in mind, the REST API is the **fastest way** to push and pull data from the PIM.
12
12
13
13
::: tips
14
-
Not familiar with the Akeneo PIM REST API? We have a [getting started guide](/getting-started/your-first-tutorial-4x/welcome.html) to help you right here!
14
+
Not yet familiar with Akeneo App? We have a [complete App guide](/apps/introduction.html)!
15
+
16
+
You want to know everything about the REST API? [Follow this guide](/documentation/introduction.html)!
15
17
:::
16
18
17
19
Also, if you are a PHP developer, we provide a [PHP Client](https://github.com/akeneo/api-php-client-ee) for this REST API. So don't hesitate to use it if need be!
@@ -44,21 +46,21 @@ APIs are great for initialization purposes. But their main drawback lays in the
44
46
In other words, you'll need to regularly ask which were the last updated DAM assets, in order to synchronize them with the PIM.
45
47
46
48
### Queuing systems
47
-
Queuing systems offer the possibility to get closer to real-time and are run asynchronously, protecting your connector from too many simultaneous requests.
49
+
Queuing systems offer the possibility to get closer to real-time and are run asynchronously, protecting your App from too many simultaneous requests.
48
50
49
51

50
52
51
53
The updated DAM assets are *published* as messages in the queuing system.
52
-
Then the connector will consume these messages.
54
+
Then the App will consume these messages.
53
55
54
56
### Webhooks
55
57
56
-
With webhooks, the DAM will send newly created assets and updated asset values to your connector.
58
+
With webhooks, the DAM will send newly created assets and updated asset values to your App.
57
59
It allows you to have some kind of "real-time" asset synchronization between your DAM and your PIM.
The biggest drawback is to ensure that your connector and your PIM won't suffer from too many HTTP requests.
63
+
The biggest drawback is to ensure that your App and your PIM won't suffer from too many HTTP requests.
62
64
It could lead to a crash of one of these applications (or they could just ignore your messages) and sometimes could create latency on the DAM side (if it is waiting from a webhook response).
63
65
So **be careful** with that!
64
66
@@ -85,7 +87,7 @@ When you use an asynchronous method to connect, you will need to [synchronize yo
85
87
86
88
You should avoid having too many calls to the PIM REST API and process only the data you need. This is why the [DAM attribute selection](pre-requisites.html#define-the-attributes-of-your-asset-families) is really important.
87
89
88
-
For queuing systems and webhooks, you need to send all messages related to assets. Then, in the connector, filter them to keep only DAM assets that are related to products that you want in the PIM (see [Pre-requisites](pre-requisites.html#which-dam-assets-are-products-related)).
90
+
For queuing systems and webhooks, you need to send all messages related to assets. Then, in the App, filter them to keep only DAM assets that are related to products that you want in the PIM (see [Pre-requisites](pre-requisites.html#which-dam-assets-are-products-related)).
89
91
90
92
If you are using an API in the DAM, please make sure to only query the modified assets since the last successful synchronization, in order to avoid synchronizing twice the exact same asset.
91
93
@@ -102,12 +104,12 @@ If the memory is not stable (meaning it returns to a base after each batch call)
102
104
103
105
### Performance
104
106
105
-
One of the best ways to enhance your connector performance is to limit the number of I/O calls to your infrastructure (HTTP requests to the API, database queries, etc...).
107
+
One of the best ways to enhance your App performance is to limit the number of I/O calls to your infrastructure (HTTP requests to the API, database queries, etc...).
106
108
107
109
For example, it is better to patch assets using bulk requests than using multiple single patches. It will limit the number of REST API calls.
108
110
You can also implement a cache system for the PIM asset structure (asset family and asset attribute) to avoid using an REST API call each time you need it.
109
111
110
-
Keep in mind that one of the most efficient ways to enhance your connector performance is to be able to scale (see above).
112
+
Keep in mind that one of the most efficient ways to enhance your App performance is to be able to scale (see above).
111
113
112
114
### Error handling
113
115
@@ -122,6 +124,6 @@ You'll need to find a way to run the calls again for the assets that have not be
122
124
123
125
### Our skeleton
124
126
125
-
As already stated in the [introduction](introduction.html#our-skeleton), we provide [a skeleton](https://github.com/akeneo/dam-connector) to inspire you when writing your own connector.
127
+
As already stated in the [introduction](introduction.html#our-skeleton), we provide [a skeleton](https://github.com/akeneo/dam-connector) to inspire you when writing your App.
126
128
It is fueled with coding best practices, so do not hesitate to have a look at it.
127
129
As a reminder, this skeleton is only supported in **best effort**.
0 commit comments