Microservices architecture made to behave as Monolithic





In microservice architecture generally there is separate database with each micro-service. And we might come across a situation where we need to query on all data spread across all the microservice's databases. We can't use JOIN here as tables are not in single database. Here we need the consolidated data from all these databases at single place so we can query that. And this should sync in real time as well. So we will make use of ElasticSearch to store consolidated data where we can perform search. On web front, we will use Django along with ElasticSearchDSL library which will sync your Django model updates to ElasticSearch index. So, each microservice level we will have an index in Elasticsearch having data of multiple tables. After that, we will have a global index in Elasticsearch which will have data from each of these index. And to sync data b/w global Index and multiple individual index, we will make use of Django Signals to trigger event of any change in database, then a consumer will receive this changed data from a queue and will make use of a meta data to decide whether this change requires a change in global index or not.


Python Django framework- Signals Queue- Any framework (RabbitMQ | SQS etc.) Elasticsearch SQL database

Speaker Info:

Akhil Garg working as Lead Software Engineer in EPAM Systems. Having 10 years of work experience in web development using Python and various frameworks.

Section: Web & App development
Type: Talks
Target Audience: Intermediate
Last Updated: