An Overview of Server-side Integrations with

Ajay Bhoj

Dec 03, 2018


In an earlier post on How to Implement Autonomous Optimization Projects Using, we covered a simple web application that used the amp-js client library. In this post, we will discuss basic concepts related to server side integrations with For a quick introduction to the key concepts in that are necessary to follow this post, please see vs A/B Testing: A paradigm shift

Depending on your use-case, you would choose either a server-side or client-side integration, and the main considerations involved are listed below.

Server-side decision-making is preferred when:

Client-side decision-making is preferred when:

Server-side integrations: Amp-agent thin-client architecture supports web/mobile applications using monolithic client libraries, i.e. clients that have all the decision-making machinery built into them. In contrast, server-side integrations follow the Amp-agent thin-client architecture discussed below.


Server-side integration essentially involves embedding a thin-client into your application(s), and allowing it to connect to an Amp-agent that handles:

As a docker container, Amp-agent can be hosted by SI in a region co-located with your servers on GCP, AWS or Azure cloud. Working with hosted Amp-agents leads to the following advantages:

Alternatively, for advanced users, it is easy to self-host the container within your backend system, which has the following advantages:

Typically, an Amp-agent can handle up to 5000 requests per second. If your deployment handles a larger traffic volume, multiple Amp-agents can be spun up, and the client libraries manage request routing automatically.

Compared to using the monolithic clients on the client-side, the Amp-agent thin-client architecture has several advantages:

From an implementation perspective, integration on the server-side can be accomplished using one of two ways, and they are discussed in the following posts:


Server-side integrations with use the Amp-agent thin-client architecture that addresses multiple issues in enabling intelligent, real-time server-side decisions. Currently, thin-client libraries are available for the following programming languages: Golang, Java, Python & Ruby. (Scala and NodeJS are coming soon). To request a thin-client for a different programming language, please contact us at

For more information, contact us here or email us at Schedule a demo here