What is an integration¶
Integrations, also sometimes called "extensions", are standalone services that allow Accedo One to provide a set of functionality to it's users.
To make Accedo One as flexible as possible, we've made sure to design the system to be agnostic to where the data is coming from. This means, Core backend system has no direct communication with third-party systems. Instead, we delegate communication and details of handling each unique vendor to external services we call "integrations".
While not all integrations can be done on server-side - majority are. Therefore IDK and this guide are targeting specifically server-side integrations only.
What does it actually do¶
Integration is effectively responsible for translating and mapping data between 3rd party system and Accedo One.
For this to work, each type of integration is expected to fulfill a predefined API specification often comprised of one or more gRPC methods.
Integrations are standalone services that can be written in any programming language and hosted in any environment, as long as it's publicly available for Accedo One to communicate with.
Communication with Accedo One is happening over gRPC protocol - a high-performance binary protocol & framework built on-top of Protocol Buffers. gRPC defaults to TLS secured communication and requires HTTP/2 communication to be established between client & server.
Usage of gRPC simplifies multiple tasks, ensures backwards compatibility, language interoperability and removes the need of manual protocol implementation. This is primarily achieved through use of code generation for integration-specific protocols. With gRPC integration developer can primarily focus on business logic and avoid time consuming tasks of underlying wiring and protocol implementations (a common source of errors).
When Accedo One calls an integration, regardless of which gRPC method is called - it will always pass a set of configuration parameters to help the integration identify a customer on whose behalf a call was made, as well as provide customer-specific configuration options.