Serverless website using Angular, AWS S3, Lambda, DynamoDB and API Gateway

Serverless architecture – you might have already heard this term. But have you tried to build one? And do you understand what Serverless architecture really means? Typically a web application requires an infrastructure to host Web Server, Application Server, and Database Server. Traditionally organizations had either their own datacenters or rented servers to manage such requirements. With Cloud – Pay as you use model has gained a lot of popularity. The headache of managing physical infrastructure has been moved to vendors like Amazon, Microsoft, and Google. Given all that, your team is still responsible to provision, monitor and manage the servers.

With Serverless Architecture, Organizations gain total freedom from managing infrastructure and can focus on building functionality. The need for scaling, patching and provisioning servers is opaque to the development team, rather it is a responsibility of a Cloud Vendor. In this article, we will build a Serverless architecture with a Dynamic Web Application using Angular, AWS S3, Lambda, DynamoDB, and API Gateway.
Continue reading

CSS Modules with Webpack 4

Ok, I know what you are going to say. We have heard of modules with Programming languages, but modules in CSS. Is that even possible? and why do you need it at first place? Well, I had a similar reaction when I heard about it. CSS Modules were born out of the idea of relentless hours spent in debugging issues caused by overlapping CSS selectors, class names. It is a common practice of having multiple style declarations spread across CSS files. The web projects include multiple CSS files to define common layout appearance, widgets etc. This sometimes becomes a nightmare when you have multiple CSS files sharing same class selector.

Continue reading

Apache PDFBox create PDF Form

PDF form is a great option to distribute and accept data from users. PDF form is similar to a Paper form but with lot more convenience. Apache PDFBox provides low-level APIs to create PDF forms with a rich set of controls and to specify rich formatting options. In the previous article, we explored creating custom pages and adding feature-rich content to a PDF, in this article we will create a PDF form.

Continue reading

PDFBox customize page size, adding images and custom fonts

In this article, we will look at some of the features offered by Apache PDFBox. In the real world, documents created using PDF libraries may require an additional feature of setting custom page size. Fortunately, PDFBox comes with API to specify page size as per standard units referred in a day to day business. The page sizes are A0, A1, …, A6, LEGAL, and LETTER.
Continue reading

Java 8 streams API

My experience with querying a collection has always been clumsy. Writing iterative loops, adding nested if conditions and above all the hack of maintaining intermediary collection to store results. On top of that the brutal indicators from SonarQube – cyclomatic complexity. During all this, I felt there is a common pattern for filtering, sorting and there has to be an expressive way to achieve this functionality(someone said more like SQL!!!). With my love towards multiple technologies (Ok I accept I am a polyglot coder), I knew .Net already had an answer to this – LINQ. Simply have a collection and write a query to extract data. Something like below
Continue reading

20 AWS Solution Architect Questions

While I was preparing for AWS Solution Architect Associate certification, I went through many video tutorials. The certification covers many services from AWS portfolio. AWS has updated the Associate Solution Architect exam in 2018 to include new services and architectural best practices, including the pillars of the Well-Architected Framework. I have already published my experience in post 1 and post 2.

Based on the knowledge I gathered from the FAQ, tutorial, videos etc. I have crafted 20 AWS Questions. Attempt these questions till you get the perfect score.

Continue reading

Is it right to use container for database?

Container has changed the way applications are developed and deployed. The ease of packaging dependencies and the ability to freeze the contents of the container has given the power of deploying repeatable environments. Developers can now confidently echo “What works on my machine can work everywhere”. Containers go hand in hand with DevOps process. In fact, it is a right fit for the DevOps. With Infrastructure defined as a Code (IaC), an entire application image can be built using a code and deployed on the platform of choice. Since containers require very less time to start compared to the Virtual Machine startup, deploying a new release or rollback can be done easily. But what about a state of an application? A majority of the applications require a state to be maintained for preserving either user data or actions. Due to ephemeral nature of containers, it is recommended for packaging application source code, but what about a database?

Continue reading

What is lambda? and why do we need it?

When I started coding GUI application using Java, I realized my code was cluttered with too many anonymous classes. Each time, I had to handle an event the inlined implementation of ActionListener introduced nested and unreadable lines of code. How many of you have written code like below

signUpUserBtn.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){

Continue reading

MySQL inside Docker

In the previous article, we learnt how Spring boot application can be packaged inside a docker container. The containerization approach helps to quickly spin up an environment and destroy it when not needed. This approach is not just limited to Programming languages but it can be easily be extended for Databases too! Most of the databases including MySQL, PostgreSQL can be easily be containerized. The configuration can be tuned as per application requirements and developers have total freedom to test the changes without impacting the centralized environment. In this article, we will focus on how MySQL database can be containerized. If you do not have Docker setup yet, please refer to this article for docker installation.
Continue reading