Skip to content

sergeyt/pandora

Repository files navigation

PANDORA

This small box of pandora (aka small app basis) composed from the following technologies:

  • Dgraph as data store with GraphQL support, write operations using REST
  • Minio as Amazon S3 compatible storage
  • Stow allows using cloud storage provides like Amazon, Google, Azure
  • ElasticSearch as search engine. Dgraph data can be automatically replicated in ElasticSeach index
  • Kibana to explore ElasticSearch data
  • NATS as messaging system with streaming of push notifications (events) via SSE channel
  • Celery - distributed task queue
  • RabbitMQ - fast message broker for celery tasks
  • Redis - result backend for celery tasks and cache service
  • Apache Tika - powerful content analysis toolkit
  • try FluentD - for centralized logging, not implemented yet :)

Programming languages currently used in the project:

Basic Idea

I'd like to have simple, flexible, dynamic, declarative, reactive, realtime information system :)

How to run

docker-compose up runs the following services:

  1. zero - Dgraph cluster manager
  2. dgraph - Dgraph data manager hosts predicates & indexes
  3. ratel - serves the UI to run queries, mutations & altering schema
  4. nats - plays as message bus
  5. pubsub - event streaming service based on SSE protocol
  6. minio - Amazon S3 compatible file store
  7. imageproxy - service with image manipulation ops like resizing
  8. elasticsearch - search and analitycs engine
  9. kibana - Elasticsearch dashboard
  10. app - application API service
  11. caddy - web server as service gateway