Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 6.19 KB

README.md

File metadata and controls

42 lines (35 loc) · 6.19 KB

Kashtanka

The repo holds the configuration of kashtanka.pet deployed production solution. Also it is the monorepo for some microservices.

Architecture

The system is designed to be horizontally scalable and without single point of failure. It is composed of microservices, each of which is Linux container. The microservices use either HTTP requests or Apache Kafka topics to communicate between each other. The production system runs on top of Kubernetes, but nobody stops you from running it as a set of Docker container on a single machine.

Dataflow diagram & microservices

System dataflow

The table lists microservices depicted on the figure.

Num in figure Full Name Description Code location Latest release
1 Pet911ru crawler Periodically crawles new card on pet911.ru Standalone repo Latest docker image version
2 Duplicate Photo filter removes duplicated photos from cards Separate directory Latest docker image version
3 Calvin-Zhirui pet head detector Detects pet heads by appling YoloV5 Standalone repo Latest docker image version
4 Calvin-Zhirui fine grained classification feature extractor Feature extractor based on Twin Transformer Standalone repo Latest docker image version
5 Data persister Persists the cards, processed images and feature vectors to the persistent storage or index Separate directory Latest docker image version
6 Card Storage REST API Provides HTTP access to the pet cards storage Standalone repo Latest docker image version
7 Card Index REST API Provices HTTP access to the index of pet cards Standalone repo Latest docker image version
8 Card matcher Queries the index to get possible lost/found cards match Standalone repo Latest docker image version
9 Trello card creator Creates Trello cards with found matched for human evaluation Standalone repo Latest docker image version
10 Telegram notifier Sends messages about new found matches into the Telegram channel RBD
11 Web app The web application of the system Standalone repo Latest docker image version
12 Pipeline submitter REST API for pushing cards into ML data processing pipeline Separate directory Latest docker image version
13 Poiskzoo.ru crawler Periodically crawles new card on poiskzoo.ru Standalone repo Latest docker image version
14 Kafka REST API REST API for pushing any messages to Kafka topics Separate directory Latest docker image version

Prerequisites

To deploy your own instance of kashtanka.pet you will need:

  1. Linux container environment (k8s / single docker daemmon / etc.)
  2. Apache Kafka cluster
  3. CassandraDB cluster
  4. Apache Solr 9.0 cluster

Kubernetes configuration

yaml files which define the cloud system are located in k8s directory.