Paving the way to Serverless - AWS Application Composer
Tags: programming, aws, news, cloudnative
Published: 2022-12-05 13:30:33

## Low-code vs. No-code

Low-code/No-code platforms have been proposed in recent years as a solution to lower the entry point in the programming field allowing non-coders to build applications and decreasing the application implementation time. At its core, a low-code/no-code platform aims to minimize hand-coding and to provide a fast and consistent way to deliver applications or even solutions that can be seen as an investment for some businesses.

One key aspect is that there's quite a separation between **low-code** and **no-code** because they have different target audiences. I would say that **no-code** is focused more on people which don't have any technical background versus **low-code** which is more towards people that already know how to code and want to speed up the process and maybe eliminate some of the toils of manual coding.

## The path to Serverless

Generally, I'm a little bit skeptical when it comes to these type of platforms because they pose some important challenges such as how to integrate with existing projects and to what extent are they flexible in terms of customizations, and last but not least the abstractions introduced by these platforms are rather general.

What I really like about AWS Application Composer is that the abstraction matches the domain. What I mean by this is the fact that one of the main features of AWS Application Composer is to lower the entry point into the serverless world.

> "Sometimes developers choose a synchronous system because it's convenient. They look so much simpler …" - Werner Vogels

Sometimes developing/architecting serverless means refactoring your mindset since they're more often asynchronous systems, which usually involves writing code functions (handlers) that will run when initiated by an event. The main idea is that in the end, you're going to have an event-driven application that will consume backend services on a flexible pay-as-you-go model.

> "Serverless: The native architecture of the cloud that enables you to shift more of your operational responsibilities to AWS" - https://aws.amazon.com/serverless/


## AWS Application Composer

- [AWS Application Composer](https://aws.amazon.com/application-composer/) has a GUI visual design canvas with an intuitive  workflow, in which you can drag and drop resources from the Resources palette, and also edit the resource's properties.


![AWS Lambda Function resource](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yf5shv95jr0woy4d2g2p.png)

- You can work in two modes **connected** and **unconnected**. If you work in the **connected** mode you must have a browser that supports the File System Access AP, which will allow the web page to gain access to your local file system in order to read, write, or save files. As you design, Application Composer automatically creates/updates your AWS [CloudFormation ](https://aws.amazon.com/cloudformation/)and AWS Serverless Application Model (AWS SAM) templates, following AWS best practices and it will sync it with the local file system.

![Application Composer Connected Mode](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s6z5psf1xrpwasvmws0g.png)

- You can easily design a Serverless application architecture, for example, a basic [CRUD ](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) application that manages some items in a database can be designed in a couple of minutes, by dragging an API Gateway some Lambda Functions, a DynamoDB and defining your paths and resources.

![App architecture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rnzp81dmxy646n49nrpd.png)

## Conclusions

- Personally, I feel this is a new way of working with AWS resources, and [AWS Application Composer](https://aws.amazon.com/application-composer/) is not only for developers but also for architects.

- At the end of the day your need to understand what that abstraction will do for you, and actually to get the best things out of these platforms you really need technical people.

- [Gartner ](https://www.gartner.com/en) predicts that by 2024, 65% of application development projects [will rely on low-code](https://www.prnewswire.com/in/news-releases/low-code-is-the-future-outsystems-named-a-leader-in-the-2019-gartner-magic-quadrant-for-enterprise-low-code-application-platforms-868871260.html#:~:text=next%20few%20years.-,Gartner%20estimates%20that%20%22by%202024,%20low-code%20application%20development,delivered%20in%20just%2010%20weeks.) development.