Python 3.5+ is used to run our Tornado application as it support Async/Await coroutines.
Tornado with Async/Await coroutines provided in Python 3.5 make up for an excellent stack for a micro-service.
MySQL is where most of our data lies, it's old but it's easier for us from BigData background to use and build on top of. If the data is properly indexed and the servers properly sharded, MySQL is quite performant.
Redis is used to cache data which is rarely changed but often requested like huge JSON structures.
NGINX acts as the gateway server, decoding TLS and load balancing requests to the various downstream servers.
Gunicorn is WSGI container that we used to run our Tornado code as it supports Asynchronous operations on tornado.
JS supports our React+Reflux frontend.
React in conjunction with RefluxJS is used to create an extendable and responsive dashboard for our clients to analyse their daily business activities in their restaurants.
As a cloud based POS, we used Android Apps as the business side frontend for our clients.
CloudWatch is used to monitor our servers on AWS including our EC2, RDS and ElastiCache.
For storing of Users files like images, documents, etc.
Used for code versioning, issue tracking and code review.