The goal is to design a working microservice architecture with the following components:
- Terraform
- Nginx
- HAProxy
- Traefik
- Envoy
- Linkerd
- Fabio
- Nomad
- Docker Swarm
- Kubernetes
- Kong
- Tyk
- express-gateway
- API Umbrella
- Linkerd
- Conduit
- Istio
- Elasticsearch
- Solr
- Bleeve
- DNA Search
- Redis (also for rate-limiting, time-series analytics)
- Memcached
- Varnish
- Zipnish
- TimescaleDB
- InfluxDB (cluster is only available in Enterprise version though)
- OpenTracing
- OpenZipkin
- Jaeger
- OpenId Connect
- OAuth2
- Identity Server 4
- DockerSecrets
- Vault
- Kafka
- Nats
- gRPC
- protobuff
- Thrift
- Avro
- RabbitMQ
- ZeroMQ
- Swagger
- JSON Schema
- JSON API
- letsencrypt
- Client/server-side service discovery (nodejs resilient, etcd, Linkerd, Consul)
- Consul/etcd setup
- Circuit breaker
- Docker-compose or nomad setup
- Dynamic ports and service registry
- 12-Factor app practices
- Heteregenous clients (nodejs, go, python)
- Transport protocol (kafka, nats, rabbitmq, rpc, grpc, protobuff)
- Caching (Redis/memcached)
- API Gateway (kong, API Umbrella, AWS API Gateway)
- OpenID connect
- Sharding/Clustering of storage
- Vault
- RASA NLU
- Opentracing with GRPC
- GRPC security with Go, nodejs, python
- GRPC with graphql adapter
- Finanz example
- Create architecture diagram for all the different setups