PDF:
Scope:
360Alumni is a SAAS application, which connects people socially to engage & empower their communities.
Its versatile application, and so, its backend is made using microservice architecture using a set of backend technologies like
- Symfony-6 for Creating RESTful backend APIs
- RabbitMq to setup the asynchronous communication between microservices
- AWS OpenSearch for Creating Materialised View of Database using CQRS Techniques (For getting optimised search results)
- RDS for creating relational database that supports
It provides multiple digital engagement solutions including fundraising Campaigns, Event management, email marketing, etc.
Challenges:
- 360Alumni is one of the best examples of challenging projects, in which I was working as a senior resource.
- Challenging Task was to migrate the existing monolithic application into the Microservice architecture.
- In my opinion, creating a new application using Microservice architecture is fine, but migrating an existing, full-featured monolithic application into the microservices is challenging.
- The microservice architecture does not allow to create the relationship between the two tables belonging to the different microservices.
- Setting up the synchronous/asynchronous communication between each microservice consumes time and resources, which slows down the implementation.
- For example, we have to make an API call to return a paginated list of items and each item should contain a data object from a different entity as well.
- To strictly follow the MS rules, I used the Symfony inbuilt feature called API serializer, which is used to perform additional operations and modify the API response.
My Role:
I worked as a senior developer in this application. I was responsible for creating the migration commands which will be used to migrate the data from the existing database to the microservice databases.
Technical Specifications:
- Symfony 5.0
- Mysql 5.7
- 3rd Party Integration (Authorize.net, Social media Authentication, ramsey UUID, RabbitMq)
- EC2, S3, RDS, Elastic Search (AWS Services)
- Deployment (Used DeployBot for auto deployment)
- Code Versioning (Gitlab)
- PMS (Clickup)
Technical Description:
Microservice architecture is used to implement the 360 Alumni Platform. For each individual module, a separate microservice is set up using the Symfony 5.0 framework. To implement the communication between each microservices, we have used RabbitMq queue messenger, which performs the asynchronous API calls between all the microservices to make the application faster and return the response to the API gateway instantly.
For high performance and scalability, CQRS Design Pattern is used, which is commonly used in the microservice architecture to separate out the read and update operations.
For deployment purposes, We used DeployBot for auto deployment on the staging and production servers. For Local, the microservices can be easily deployed using the same docker configuration but different containers on separate ports.