CARTO can be installed on a local server, or set of servers, either directly or using our commercial installer.

Architecture

Stack diagram

The common CARTO LDS stack is powered by these components:

image

PostgreSQL

PostgreSQL is the open source database powering CARTO.

CARTO LDS uses PosgreSQL for several purposes:

  • Geocoding. CARTO LDS provides its own internal geocoder, powering CARTO with geocoding capabilities.
  • Data Observatory. Data Enrichment through data augmentation.
  • External providers. CARTO LDS can be easily integrated with external providers such as HERE, Mapbox, TomTom, Google or Geocodio in order to provide geocoding, routing, isolines and matrix capabilities.

Both CARTO Builder and CARTO LDS PostgreSQL are always separated PostgreSQL instances that can run in the same machine, or different ones.

PostGIS

PostGIS is the extension which adds spatial capabilities to PostgreSQL. It allows you to run geospatial functions in PostgreSQL.. It is required for both the User Data Storage and the Metadata Storage databases.

CARTO PostgreSQL Extension

The CARTO PostgreSQL extension can be found at https://github.com/CartoDB/cartodb-postgresql.

This extension is required by all the components of CARTO and it must be installed in the server where user databases are stored.

It provides functions (and other helpers) needed by the Builder, Maps, and SQL APIs such as:

  • CARTOfying functions, which convert raw PostgreSQL tables recognized by CARTO. It adds some additional columns and triggers.
  • Multiuser schema handling functions.
  • Quota helpers.
  • Cache helpers.
  • etc.

The CARTO extension depends on PostGIS and on the pg_schema_triggers extension.

CARTO LDS Client Extension

The CARTO LDS client extension can be found at https://github.com/CartoDB/dataservices-api and depends on CARTO PostgreSQL Extension extension.

This extension is required to connect to CARTO LDS PostgreSQL instance and it must be installed in the server where user databases are stored (CARTO Builder product).

CARTO LDS Server Extension

The CARTO LDS server extension can be found at https://github.com/CartoDB/dataservices-api and depends on PostGIS and CARTO LDS Geocoder Extension extension.

This extension provides access to CARTO Geocoding functions, Data Observatory, and External providers.

CARTO LDS Geocoder Extension

The CARTO LDS Geocoder extension can be found at https://github.com/CartoDB/data-services.

This extension includes the functions and related objects needed to provide a geocoding service for administrative areas of level 0, administrative areas of level 1, postal codes, IP addresses and city names. It does not include the actual data used to geocode them.

Please check Loading LDS Geocoding Database to load georeferenced data.

CARTO LDS Data Observatory Extension

The CARTO LDS Data Observatory extension can be found at https://github.com/CartoDB/observatory-extension.

This extension implements the row-level functions needed by the Data Observatory Service, but it does not include the actual data used by this service.

Please check Loading Data Observatory Database to load observatory data.

External Providers

Currently, CARTO LDS can be integrated with HERE, Mapbox, TomTom, Google and Geocodio providers.