Posts

Command Design Pattern in Java

The Command design pattern is a behavioral design pattern that encapsulates a request or an action as a separate object, allowing for more flexibility and extensibility in handling requests. What is the Command Design Pattern? The Command pattern is used to decouple the requester of an action from the provider of the action. It does this by introducing an intermediate object, known as the Command, which encapsulates the request. Components of the Command Pattern Command : This is the interface that declares the execute method. ConcreteCommand : This class implements the Command interface and defines the actions to be performed. Receiver : This is the object that actually performs the action. Invoker : This is the object that receives the command and invokes the execute method. Client : This is the object that creates the command and sets the receiver. Java Implementation Here's an example implementation of the Command pattern in Java: Java // Command interface public interface C...

What Are Microservices?

Microservices architecture has become one of the most popular ways to build scalable, modern, cloud-native applications. Instead of developing one large and tightly coupled system, microservices allow teams to build multiple small, independent services that work together. This approach improves scalability, boosts development speed, and supports continuous delivery. What Are Microservices? Microservices is an architectural style where an application is split into a collection of small, loosely coupled services. Each service is responsible for a single business capability and can be developed, deployed, and scaled independently . Microservices promote polyglot development . For example: One service may use Java + Spring Boot + MySQL . Another may use Node.js + MongoDB . Yet another may run Python or Go . As long as they communicate through well-defined APIs—usually REST, gRPC, or messaging—they can use different languages, frameworks, and databases. Why Move from ...

Introduction to Amazon API Gateway

Amazon API Gateway acts as a single entry point for all your backend services, making it easier to create, manage, secure, and monitor APIs at scale. This beginner-friendly post explains what API Gateway is, why it’s needed, and how it works using a simple demo. What is AWS API Gateway? Amazon API Gateway is a fully managed AWS service that lets you create, publish, maintain, monitor, and secure REST, HTTP, and WebSocket APIs . It works as a “front door” for applications to access data and business logic running on: AWS Lambda EC2 or on-prem servers Containers (ECS/EKS) AWS services like DynamoDB, SQS, Step Functions Even external APIs outside AWS API Gateway handles routing, request validation, throttling, authentication, performance optimization, and monitoring so you don’t have to build these features manually. Why Do We Need an API Gateway? Without an API Gateway, every client (web, mobile, third-party apps) must talk directly to multiple backen...

AWS CLI Tutorial: Installation, Configuration & Hands-on Commands

AWS Command Line Interface (AWS CLI) is a powerful tool that allows developers and DevOps engineers to manage AWS services directly from the terminal. Instead of relying on the AWS Management Console, you can perform tasks faster and automate them using simple commands. What Is AWS CLI? AWS Command Line Interface (AWS CLI) is a unified tool used to interact with AWS services using terminal commands. It allows you to manage resources like EC2, S3, IAM, Lambda, and more without opening the browser. Manage AWS resources efficiently Automate operations using scripts Avoid human errors from console usage Handle large workloads (like thousands of S3 files) Why AWS CLI Matters Relying only on the AWS Console becomes slow and difficult when handling: Multiple environments (dev, stage, prod) Large-scale S3 operations Repetitive tasks like uploads, backups, cleanups AWS CLI solves these issues by enabling tasks to be completed with a single command or thr...

AWS Lambda Explained with a Simple Java Example

AWS Lambda is a fully serverless compute service that lets you run code without provisioning or managing servers. You are billed only for the time your function actually runs—unlike EC2, where you pay even when the server is idle. Lambda automatically scales, executes only when triggered, and shuts down after execution. What AWS Lambda Does Runs small pieces of code called functions written in Java, Python, Node.js, Ruby, and more. No server, OS, CPU, RAM, or patching management—AWS handles everything. Billed only per invocation and execution time. Ideal for event-driven, bursty, or low-traffic workloads. How AWS Lambda is Triggered A Lambda function does nothing until a trigger fires. Common triggers include: S3 — Run code when files are uploaded or deleted (e.g., image resizing). SQS / SNS — Process messages as they arrive. API Gateway — Build serverless REST APIs where each HTTP call invokes Lambda. EventBridge / CloudWatch — Cron jobs...

Spring Boot + AWS RDS MySQL: Connect Your App to Cloud DB

Connecting a Spring Boot application to AWS RDS MySQL is almost identical to using a local MySQL instance. Only the datasource URL, username, and password change—your Spring Boot, JPA, Hibernate, and repository code remain the same. Step 1: Local MySQL Setup with Spring Boot Create a Spring Boot project from Spring Initializr with: Spring Web Spring Data JPA MySQL Driver Below is an example Product entity : package com.example.demo.entity; import jakarta.persistence.*; @Entity public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; // getters and setters } Product JPA Repository: package com.example.demo.repository; import com.example.demo.entity.Product; import org.springframework.data.jpa.repository.JpaRepository; public interface ProductRepository extends JpaRepository { } Product REST Controller: package com.example.demo.contr...

AWS RDS Tutorial for Beginners: Launch MySQL and Connect from Terminal

A relational database stores data in tables with rows and columns . Example: a products table with columns like id, name, description, price, and stock. These tables can be related using keys. Popular relational databases include MySQL, PostgreSQL, Oracle, MariaDB, and SQL Server. When deploying applications (for example on EC2), they typically need one of these relational databases to store application data. What is AWS RDS? Amazon RDS (Relational Database Service) is a managed database service that allows you to create, operate, and scale relational databases without managing the underlying servers. RDS automatically handles: Provisioning Backups Patching Monitoring Supported engines: Amazon Aurora (MySQL/PostgreSQL compatible) MySQL PostgreSQL MariaDB Oracle Microsoft SQL Server IBM Db2 You connect to RDS databases using normal CLI tools or JDBC URLs. Create an RDS MySQL Database (Free Tier) Open the RDS Console → Clic...