By using AWS re:Post, you agree to the Terms of Use

Which architecture would fit our needs better?


We're a small startup based in Malaysia and I'm the technical founder of the startup.

We have a plan for all our services working on AWS. We have startup credits, so we want to use them and launch to start getting some returns that we can use to continue supporting our costs.

We're planning to build a micro-service architecture. It'll have two mobile apps for different stakeholders. The app consists of functionalities like Auth/Login, Chat, Payment (Possibly we'll be using Stripe), Accounts/Receipts, AI-based recommendations, and others.

I have been learning what I can about AWS and have a solid understanding of what Amplify is. I also understand that in order to make a micro-service I can start an RDS and connect it with an EC2 and a node or any project that works as an API. But I might need more grooming on the EC2. So, I guess my first question would be: "Is it a good approach that we have multiple Amplify projects each used as a micro-service?" I understand that at the start we might not have that many users but this will be a solution that when scaled would require less effort in the future.

My second question would be based on the above idea which architecture would you recommend if not the one?

2 Answers

Below are few good references to see as you start thinking on microservices in AWS. Actual implementation will of course depend on detailed requirements but below should give you good starting points. It gives good information around Compute, Storage & Databases, Networking, Messaging, Logging and Monitoring & DevOps.

profile picture
answered 18 days ago

Amplify provides full-stack application development & integration capabilities that includes both front end and backend support.

To consider a microservices architecture, it is best practice to separate front end application development from backend services. Typically backend services are designed and implemented in the forms of RESTFul APIs or GraphQL APIs, and it is recommended to implement those APIs so that they are reusable, i.e. not tied to one Amplify project. However, Amplify front end library provides support to use backend services/APIs in a convenient way including authentication.

Another benefit of keeping them separated is to have different developers/teams working on front end or backend, as long as the API interface is designed and agreed upon by bother developers.

In a summary, you may consider have Amplify project(s) focusing on front end application development that includes dependency and integration with backend microservices which are separate project or code repo.

answered 4 days ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions