bg_image
header

AWS Lambda

AWS Lambda is a "serverless" service provided by Amazon Web Services (AWS) that allows developers to execute code without managing or provisioning servers. With Lambda, developers can write functions and upload them to run in the cloud on an as-needed basis without managing infrastructure.

It operates based on "event triggers" that initiate the code, such as uploading a file to an Amazon S3 bucket or receiving a message in an Amazon Simple Queue Service (SQS) queue. Lambda scales automatically to meet the code's demands, and developers only pay for the actual compute power used, as billing is based on the number of function invocations and their duration.

 


Function as a Service - FaaS

Function-as-a-Service (FaaS) is a cloud computing model that allows developers to execute individual functions or code snippets without having to worry about the underlying infrastructure. Essentially, FaaS enables developers to upload and run code in the form of functions without dealing with the deployment, scaling, or management of server infrastructure.

The idea behind FaaS is that developers only need to write and upload the code that fulfills a specific function. The FaaS platform then handles the execution of this code when triggered by events or requests. A typical example of FaaS is using serverless computing in the cloud, where developers deploy functions in the cloud that run only when needed.

Popular FaaS platforms include AWS Lambda by Amazon Web Services, Azure Functions by Microsoft Azure, and Google Cloud Functions by Google. They allow developers to upload and execute code in various programming languages, simplifying application development and scalability without worrying about the underlying infrastructure.

 


Serverless

Serverless refers to a cloud computing approach where developers can build and run applications without having to manage the underlying infrastructure, such as servers or server instances. In the serverless model, the responsibility for provisioning, scaling, and maintaining servers lies with a cloud service provider.

Essentially, serverless doesn’t mean there are no servers; it means developers don't need to concern themselves with managing those servers. The infrastructure is automatically managed and scaled by the provider as needed, allowing developers to focus on writing application code without worrying about the underlying hardware or server configuration.

Serverless applications are often broken down into functions or services known as "Function-as-a-Service" (FaaS). Developers write functions that respond to specific events and are managed and executed by the serverless provider. These functions scale on demand and are billed based on actual usage.

Benefits of serverless include improved scalability, cost savings through usage-based billing, reduced operational complexity, and the ability to focus on developing application logic rather than managing infrastructure. It's commonly used for various types of applications such as web applications, APIs, data processing, and more.

 


Publish-Subscribe-Pattern - PubSub

The Publish/Subscribe pattern (often abbreviated as Pub/Sub) is a communication pattern in software development that enables loose coupling between components or systems. It involves two main actors: the Publisher and the Subscriber.

  • Publisher: Responsible for generating and publishing messages or events. A Publisher sends messages to a central location, the Message Broker or Pub/Sub system.

  • Subscriber: Registers for specific types of messages or topics it wants to react to. A Subscriber receives messages published by the Publisher and forwarded by the Message Broker to the respective subscribers.

The key concept in the Pub/Sub pattern is that the Publisher doesn't send messages directly to specific recipients but rather to a central intermediary system. This system stores messages and then distributes them to all Subscribers interested in the corresponding topic or type of message.

The pattern enables decoupled, scalable, and flexible communication between different parts of an application or between different applications. It's used in various systems and technologies, including messaging brokers, cloud platforms, IoT (Internet of Things), real-time analytics, and other scenarios requiring flexible message delivery.

 


Queue

A queue is a data structure that operates on the principle of 'First In, First Out' (FIFO). This means that the first element inserted into the queue is the first one to be removed.

Think of it like a real-life queue: those who arrive first are also served first. In computer science and message processing, a queue is used to store elements or messages waiting to be processed by a process, application, or system.

For instance, a message queue in a message broker works similarly. When an application sends a message, it's placed in the queue, waiting there until it's picked up and processed by another application or system. This facilitates efficient, ordered, and timed processing of messages or tasks.


Message Broker

A Message Broker is a software component that facilitates communication between different applications or systems by receiving, forwarding, and delivering messages. It acts as an intermediary, transporting messages from one application to another regardless of the type of application or its location.

The Message Broker receives messages from a sending application, temporarily stores them, and then forwards them to the respective receivers. The broker can provide various functions such as message queues, topics, message routing, and transformations to ensure that messages are transmitted efficiently and securely.

Such systems are often used in distributed application landscapes to facilitate interaction and data exchange between different applications, services, or systems by enabling loosely coupled, reliable communication.


Advanced Message Queuing Protocol - AMQP

AMQP stands for Advanced Message Queuing Protocol. It's an open-standard application layer protocol for message-oriented middleware, designed for exchanging messages between systems. AMQP enables different systems or components to communicate by passing messages through a message broker, allowing for reliable and asynchronous communication between applications, services, or devices.

 


Web Application

A web application is a software application accessible via a web browser and operates over the internet. Unlike traditional software installed on a local computer, a web application runs on a remote server and is accessed through the user's browser.

Web applications can encompass a wide range of functions, from simple interactive pages to complex applications such as social networks, email services, online stores, productivity tools, and more. They often use a combination of different technologies like HTML, CSS, and JavaScript on the client-side (in the user's browser) as well as backend technologies like databases, server-side scripting languages (e.g., Python, PHP, Ruby), and frameworks to support functionality.

Accessing web applications via the browser makes them platform-independent, allowing them to be used from various devices with an internet connection—be it a computer, tablet, or smartphone.