My purpose is to build a search engine as google. I thought to build it base on a microservices architecture. We have principal steps: crawling (the process of finding new links) scraping (the process of collection and extracting data items) indexing (the process of attributing index to each document as a key word for each doc) and ranking (the process of attribution a score for each page based on several factors). I am thinking about Cassandra to store data crawled and elastic search to index it. But the question is any advises on database to use for each service and how to communicate between the data stored in each service in a fast way.