/docker-compose-demo

Demonstrate Senzing stack using `docker-compose`.

Primary LanguagePythonApache License 2.0Apache-2.0

docker-compose-demo

If you are beginning your journey with Senzing, please start with Senzing Quick Start guides.

You are in the Senzing Garage where projects are "tinkered" on. Although this GitHub repository may help you understand an approach to using Senzing, it's not considered to be "production ready" and is not considered to be part of the Senzing product. Heck, it may not even be appropriate for your application of Senzing!

Synopsis

Using docker-compose, bring up a Senzing stack.

Overview

This repository illustrates reference implementations of Senzing using docker-compose.

The instructions show how to set up a system that:

  1. Reads JSON lines from a file on the internet and sends each JSON line to a message queue via the Senzing stream-producer.
  2. Reads messages from the queue and inserts into Senzing via the Senzing stream-loader.
  3. Reads information from Senzing via Senzing API Server server.
  4. Views resolved entities in a web app.

The following diagram shows the relationship of the docker containers in this docker composition. Arrows represent data flow.

Image of architecture

Caveat

This demonstration runs on platforms that support docker and docker-compose.

⚠️ RedHat has explicitly stated that Docker is not supported in RHEL 8. As such, these demonstrations of Senzing using docker and docker-compose do not run in a RedHat Enterprise Linux 8 environment natively. Likewise, docker is not a CentOS 8 supported project. Although with user-modification it has been shown that docker and docker-compose can run in these environments, the onus is on the user for proper operation of docker and docker networking.

Implementation

The following tables indicate the instructions for variations in components.

  1. Component variants:

    1. Queue
      1. RabbitMQ
      2. Kafka
      3. AWS SQS
    2. Database
      1. Postgres
      2. MySQL
      3. MS SQL
  2. Implementations of the docker formation:

    Queue Database Instructions docker-compose.yaml
    RabbitMQ PostgreSQL instructions docker-compose-rabbitmq-postgresql.yaml
    RabbitMQ MySQL instructions docker-compose-rabbitmq-mysql.yaml
    RabbitMQ MSSQL instructions docker-compose-rabbitmq-mssql.yaml
    Kafka PostgreSQL instructions docker-compose-kafka-postgresql.yaml
    Kafka MySQL instructions docker-compose-kafka-mysql.yaml
    Kafka MSSQL instructions docker-compose-kafka-mssql.yaml
    AWS SQS PostgreSQL instructions docker-compose-sqs-postgresql.yaml
  3. Advanced docker formations:

    Description Instructions
    Enhancements built upon PostgreSQL and RabbitMQ. instructions
    Enhancements built upon PostgreSQL and Kafka. instructions
    Enhancements built upon PostgreSQL and AWS SQS. instructions