Skip to main content

Posts

Showing posts from 2022

JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other serializable values). It is a common data format with diverse uses in electronic data interchange, including that of web applications with servers. JSON is a language-independent data format. It was derived from JavaScript, but many modern programming languages include code to generate and parse JSON-format data. JSON filenames use the extension .json. Any valid JSON file is a valid JavaScript (.js) file, even though it makes no changes to a web page on its own. Douglas Crockford originally specified the JSON format in the early 2000s. He and Chip Morningstar sent the first JSON message in April 2001. Official website :- https://json.org/

Amazon Lambda (AWS Lambda)

 AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. It was introduced on November 13, 2014. AWS Lambda was designed for use cases such as image or object uploads to Amazon S3, updates to DynamoDB tables, responding to website clicks, or reacting to sensor readings from an IoT connected device.  Unlike Amazon EC2, which is priced by the hour but metered by the second, AWS Lambda is metered by rounding up to the nearest millisecond with no minimum execution time. AWS Lambda can also be used to automatically provision back-end services triggered by custom HTTP requests, and "spin down" such services when not in use, to save resources. Since December 2020 Lambda supports Docker containers through ECR up to 10 GB in size. Official website :- https://aws.amazon.com/lambda

Angular (web framework)

 Angular is a TypeScript-based free and open-source web application framework lead by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS. Google designed Angular as a ground-up rewrite of AngularJS. Angular 14 was released on June 02, 2022. Some new features include typed forms, standalone components, and new primitives in the Angular CDK (component dev kit). All the major releases are supported for 18 months.  This consists of 6 months of active support, during which regularly-scheduled updates and patches are released. It is then followed by 12 months of long-term support (LTS), during which only critical fixes and security patches are released. Official website :- https://angular.io/

HTML5

 HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. HTML5 was first released in a public-facing form on 22 January 2008,with a major update and "W3C Recommendation" status in October 2014. Its goals were to improve the language with support for the latest multimedia and other new features; to keep the language both easily readable by humans and consistently understood by computers and devices such as web browsers, parsers, etc., HTML5 introduces elements and attributes that reflect typical usage on modern websites. In addition to specifying markup, HTML5 specifies scripting application programming interfaces (APIs) that can be used with JavaScript. HTML5 is designed so that old browsers can safely ignore new HTML5 constructs. Official website :- https://html.spec.whatwg.org/ Video Link :- https://youtu.be/7E7n2T5B9Nw

Amazon S3 (Amazon Simple Storage Service)

 Amazon Simple Storage Service is a service offered by Amazon Web Services that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its e-commerce network. Amazon S3 can store any type of object, which allows uses like storage for Internet applications, backups, disaster recovery, data archives, data lakes for analytics, and hybrid cloud storage. AWS launched Amazon S3 in the United States on March 14, 2006, then in Europe in November 2007. The basic storage units of Amazon S3 are objects which are organized into buckets.  Each object is identified by a unique, user-assigned key. Buckets can be managed using the console provided by Amazon S3, programmatically with the AWS SDK, or the REST application programming interface. An object in S3 can be between 1 byte and 5TB. If an object is larger than 5TB, it must be divided into chunks prior to uploading. When uploading, Amazon S3 allows a maximum of 5

SingleStore : cloud-native database

 SingleStore is a cloud-native database designed for data-intensive applications. A distributed, relational, SQL database management system that features ANSI SQL support, it is known for speed in data ingest, transaction processing, and query processing. SingleStore primarily stores relational data, though it can also store JSON data, graph data, and time series data. For queries, it compiles Structured Query Language into machine code. SingleStore can store data in either row-oriented tables ("rowstores") or column-oriented tables ("columnstores"). The format used is determined by the user when creating the table. Rather than the traditional B-tree index, SingleStore rowstores use skiplists optimized for fast, lock-free processing in memory. Columnstores store data indexed in sorted segments, in order to maximize on-disk compression and achieve fast ordered scans. SingleStore also supports using hash indexes as secondary indexes to speed up certain queries. A Sing

Amazon DynamoDB : Fully managed proprietary NoSQL database service

 Amazon DynamoDB is a fully managed proprietary NoSQL database service that supports key–value and document data structures and is offered by Amazon.com as part of the Amazon Web Services portfolio. Dynamo had a multi-leader design requiring the client to resolve version conflicts and DynamoDB uses synchronous replication across multiple data centers for high durability and availability.  DynamoDB was announced by Amazon CTO Werner Vogels on January 18, 2012, and is presented as an evolution of Amazon SimpleDB. DynamoDB differs from other Amazon services by allowing developers to purchase a service based on throughput, rather than storage. If Auto Scaling is enabled, then the database will scale automatically. To prevent data loss, DynamoDB features a two-tier backup system of replication and long-term storage. Each partition features three nodes, each of which contains a copy of that partition's data. Each node also contains two data structures: a B tree used to locate items, and

LinkedIn Skill Assessments | Java | Answers | #1

  Given the string "strawberries" saved in a variable called fruit, what would fruit.substring(2, 5) return ?  rawb  raw  awb  traw   Answer : raw Reasoning: The substring method is accepting two arguments. The first argument being the index to start(includes that char at 2) and the second the index of the string to end the substring(excludes the char at 5). Strings in Java are like arrays of chars. Therefore, the method will return "raw" as those are the chars in indexes 2,3, and 4. You can also take the ending index and subtract the beginning index from it, to determine how many chars will be included in the substring (5-2=3).

Couchbase Server (Membase)

 Couchbase Server, originally known as Membase, is an open-source, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value or JSON document access with low latency and high sustained throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines. Every Couchbase node consists of a data service, index service, query service, and cluster manager component. Starting with the 4.0 release, the three services can be distributed to run on separate nodes of the cluster if needed. Couchbase Mobile, which stores data locally on devices (usually mobile devices) is used to create “offline-first” applications that can operate when a device is not

V8 (JavaScript engine)

 V8 is a free and open-source JavaScript engine developed by the Chromium Project for Google Chrome and Chromium web browsers. The project’s creator is Lars Bak. The first version of the V8 engine was released at the same time as the first version of Chrome: 2 September 2008. V8 first generates an abstract syntax tree with its own parser. Then, Ignition generates bytecode from this syntax tree using the internal V8 bytecode format. V8 can be used in a browser or integrated into independent projects. V8 is used in the following software: Chromium-based web browsers - Google Chrome, Brave, Opera, Vivaldi and Microsoft Edge. Couchbase database server Deno runtime environment Electron desktop application framework, used by the Atom and Visual Studio Code text editors MarkLogic database server NativeScript mobile application framework Node.js runtime environment Qt Quick runtime environment Official website :- https://v8.dev/

Heroku :: cloud platform as a service (PaaS)

 Heroku is a cloud platform as a service (PaaS) supporting several programming languages.  One of the first cloud platforms, Heroku has been in development since June 2007. The Heroku network runs the customer's apps in virtual containers which execute on a reliable runtime environment. Heroku calls these containers "Dynos". These Dynos can run code written in Node, Ruby, PHP, Go, Scala, Python, Java, or Clojure.  Heroku Teams is a team management tool which provides collaboration and controls to bring a customer's developers, processes, and tools together in order to build better software.  Heroku Elements provides users with Add-ons (tools and services for developing, extending, and operating the app), Buildpacks (which automate the build processes for the preferred languages and frameworks) and Buttons (a tool for the one-click provisioning, configuring, and deployment of third party components, libraries and patterns). Heroku Redis is the customized Redis from Her

PostgreSQL :: open-source relational database management system (RDBMS)

 PostgreSQL also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.  PostgreSQL features transactions with ACID properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is designed to handle a range of workloads, from single machines to data warehouses or Web services with many concurrent users. PostgreSQL manages concurrency through multiversion concurrency control (MVCC), which gives each transaction a "snapshot" of the database, allowing changes to be made without affecting other transactions.  PostgreSQL provides an asynchronous messaging system that is accessed through the NOTIFY, LISTEN and UNLISTEN commands. PostgreSQL includes built-in support for regular B-tree and hash table indexes, and four index access methods: generalized search trees (GiST), generalized inverted indexes (GIN), Space-Partitioned GiST (SP-GiST) and Block Ra

Apache Tomcat

 Apache Tomcat is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. Tomcat provides a "pure Java" HTTP web server environment in which Java code can run. Tomcat started off as a servlet reference implementation by James Duncan Davidson, a software architect at Sun Microsystems. The Components of Tomcat are, Catalina Coyote Jasper Cluster High availability Web application Catalina is Tomcat's servlet container. Coyote is a Connector component for Tomcat that supports the HTTP 1.1 and 2 protocol as a web server.  Jasper is Tomcat's JSP Engine.  Cluster component has been added to manage large applications.  A high-availability feature has been added to facilitate the scheduling of system upgrades without affecting the live environment. Web application has added user- as well as system-based web applications enhancement to add support for deployment across the variety of environments. Official Website :

Git :: Distributed version control tool

 Git is free and open source software for distributed version control: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows. Git development began in April 2005, after many developers of the Linux kernel gave up access to BitKeeper, a proprietary source-control management (SCM) system that they had been using to maintain the project since 2002. Stack Overflow has included version control in their annual developer survey in 2015 (16,694 responses),  2017 (30,730 responses), 2018 (74,298 responses) and 2022 (71,379 reponses). Git was the overwhelming favorite of responding developers in these surveys, reporting as high as 93.9% in 2022. Official Website :- https://git-scm.com/

MySQL Workbench :: Visual database design tool

 MySQL Workbench is a visual database design tool that integrates SQL development, administration, database design, creation and maintenance into a single integrated development environment for the MySQL database system. The first preview version of MySQL Workbench was released in September 2005, and was not included in the MySQL GUI Tools Bundle. Development was started again in 2007 and MySQL Workbench was set to become the MySQL GUI flagship product. Prominent features of MySQL Workbench are :  General Database Connection & Instance Management SQL Editor Data modeling Database administration Performance monitoring Database migration Since its introduction MySQL Workbench has become popular within the MySQL community. It is now the second most downloaded product from the MySQL website with more than 250,000 downloads a month. Official Website :- http://mysql.com/products/workbench/ Release :- https://github.com/mysql/mysql-workbench/releases

JProfiler :: Java profiling tool

 JProfiler is a commercially licensed Java profiling tool developed by ej-technologies GmbH, targeted at Java EE and Java SE applications. JProfiler supports the following modes of operation: Live profiling of a local session Live profiling of a remote session Offline profiling and triggers Snapshot comparisons Viewing an HPROF snapshot Request tracking Easy creation of custom probes The following gives a high level overview of the profiling views in JProfiler: MEMORY PROFILING HEAP WALKER CPU PROFILING THREAD PROFILING MONITOR PROFILING VM TELEMETRY DATABASES JEE & PROBES Official Website :- https://www.ej-technologies.com/products/jprofiler/overview.html

Slack :: A messaging program

 Slack is a messaging program designed specifically for the office use.  Developed by the Canadian software company Slack Technologies, and now owned by Salesforce, Slack offers many IRC-style features, including persistent chat rooms (channels) organized by topic, private groups, and direct messaging. In addition to these online communication features, Slack integrates with other software. Slack launched to the public in August 2013. Slack allows users to add and customize chatbots which can send notifications or reminders, provide custom responses to specific phrases, etc. Slack provides mobile apps for iOS and Android in addition to their Web browser client and desktop clients for macOS, Windows, and Linux (beta). Slack is also available for the Apple Watch, allowing users to send direct messages, see mentions, and make simple replies. Official Website :- https://slack.com/

JIRA :: Issue tracking product

 Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking, agile, project management and Work management. The product name comes from the second syllable of the Japanese word pronounced as Gojira, which is Japanese for Godzilla. According to Atlassian, Jira is used for issue tracking and project management by over 180,000 customers in 190 countries. Jira is written in Java and uses the Pico inversion of control container, Apache OFBiz entity engine, and WebWork 1 technology stack. Jira has REST, SOAP, and XML-RPC interfaces. Jira integrates with source control programs such as Clearcase, Concurrent Versions System, Git, Mercurial, Perforce, Subversion, and Team Foundation Server. It ships with various translations including English, French, German, Japanese, and Spanish. When launched in 2002, Jira was purely issue tracking software, targeted at software developers. The app was later adopted by non-IT organizations as a project management tool.  Offi

IntelliJ IDEA :: First available Java IDEs with advanced code navigation and code refactoring capabilities integrated

 IntelliJ IDEA is an integrated development environment(IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ), and is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. The first version of IntelliJ IDEA was released in January 2001, and was one of the first available Java IDEs with advanced code navigation and code refactoring capabilities integrated. The IDE provides certain features like code completion by analyzing the context, code navigation which allows jumping to a class or declaration in the code directly, code refactoring, code debugging, linting and options to fix inconsistencies via suggestions. In a 2010 InfoWorld report, IntelliJ received the highest test center score out of the four top Java programming tools. Download :- https://www.jetbrains.com/idea/download/

Swagger :: Suite of tools for API developers

 Swagger is a suite of tools for API developers from SmartBear Software and a former specification upon which the OpenAPI Specification is based. The Swagger API project was created in 2011 by Tony Tam, technical co-founder of the dictionary site Wordnik. Swagger's open-source tooling usage can be broken up into different use cases: development, interaction with APIs, and documentation. When creating APIs, Swagger tooling may be used to automatically generate an Open API document based on the code itself.  This embeds the API description in the source code of a project and is informally called code-first or bottom-up API development. Using the Swagger Codegen project, end users generate client SDKs directly from the OpenAPI document, reducing the need for human-generated client code. As of August 2017, the Swagger Codegen project supported over 50 different languages and formats for client SDK generation. When described by an OpenAPI document, Swagger open-source tooling may be use

Wireshark

 Wireshark is a free and open-source packet analyzer.  It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 due to trademark issues. Wireshark is very similar to tcpdump, but has a graphical front-end and integrated sorting and filtering options. Wireshark is a data capturing program that "understands" the structure (encapsulation) of different networking protocols. It can parse and display the fields, along with their meanings as specified by different networking protocols. Wireshark uses pcap to capture packets, so it can only capture packets on the types of networks that pcap supports. Wireshark can color packets based on rules that match particular fields in packets, to help the user identify the types of traffic at a glance. A default set of rules is provided; users can change existing rules for coloring packets, add new rules, or remove

PuTTY

 PuTTY is a free and open-source terminal emulator, serial console and network file transfer application.  It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection.  It can also connect to a serial port. The name "PuTTY" has no official meaning. PuTTY was originally written for Microsoft Windows, but it has been ported to various other operating systems. Official ports are available for some Unix-like platforms, with work-in-progress ports to Classic Mac OS and macOS, and unofficial ports have been contributed to platforms such as Symbian, Windows Mobile and Windows Phone. PuTTY was written and is maintained primarily by Simon Tatham, a British programmer. PuTTY development began late in 1998, and was a usable SSH-2 client by October 2000. Official Website :- https://www.chiark.greenend.org.uk/~sgtatham/putty/

WinSCP (Windows Secure Copy)

 WinSCP (Windows Secure Copy) is a free and open-source SSH File Transfer Protocol (SFTP), File Transfer Protocol (FTP), WebDAV, Amazon S3, and secure copy protocol (SCP) client for Microsoft Windows. Its main function is secure file transfer between a local computer and a remote server. Beyond this, WinSCP offers basic file manager and file synchronization functionality. For secure transfers, it uses the Secure Shell protocol (SSH) and supports the SCP protocol in addition to SFTP Development of WinSCP started around March 2000 and continues. Originally it was hosted by the University of Economics in Prague, where its author worked at the time. Since July 16, 2003, it is licensed under the GNU GPL. It is hosted on SourceForge and GitHub. WinSCP is based on the implementation of the SSH protocol from PuTTY and FTP protocol from FileZilla. Official Website :- https://winscp.net/ Documentation :- https://winscp.net/eng/docs/

JMeter (Apache JMeter)

 Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. JMeter can be used as a unit-test tool for JDBC database connections, FTP, LDAP, web services, JMS, HTTP, generic TCP connections and OS-native processes. One can also configure JMeter as a monitor, although this is typically used as a basic monitoring solution rather than advanced monitoring.  It can be used for some functional testing as well JMeter supports variable parameterization, assertions (response validation), per-thread cookies, configuration variables and a variety of reports. Official Website :- https://jmeter.apache.org/

Postman

 Postman is an API platform for developers to design, build, test and iterate their APIs. As of April 2022, Postman reports having more than 20 million registered users and 75,000 open APIs, which it says constitutes the world's largest public API hub. The company is headquartered in San Francisco and maintains an office in Bangalore, where it was founded. In 2022, Postman was ranked #28 on the Forbes Cloud 100 list. Postman started in 2012 as a side project of software engineer Abhinav Asthana, who wanted to simplify API testing, while working at Yahoo Bangalore. He launched Postman as a free app in the Chrome Web Store.  As the app’s usage grew, Abhinav recruited former colleagues Ankit Sobti and Abhijit Kane to help create Postman Inc.  The three co-founders lead the company today, with Abhinav serving as CEO and Sobti as CTO. Official Website :- https://postman.com/

DBeaver

 DBeaver is a SQL client software application and a database administration tool.  For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver.  For other databases (NoSQL) it uses proprietary database drivers.  It provides an editor that supports code completion and syntax highlighting.  It provides a plug-in architecture (based on the Eclipse plugins architecture) that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent.  This is a desktop application written in Java and based on Eclipse platform. DBeaver was started in 2010 as a hobby project.  It was supposed to be free and open-source with a good-looking and convenient UI and to include frequently used features for database developers. The first official release was in 2011 on Freecode. Official Website :- http://dbeaver.io/

log4j2 (Apache Log4j 2)

 Apache Log4j 2 is the successor of Log4j 1 which was released as GA version in July 2014.  The framework was rewritten from scratch and has been inspired by existing logging solutions, including Log4j 1 and java.util.logging.  One of the most recognized features of Log4j 2 is the performance of the "Asynchronous Loggers". The library reduces the need for kernel locking and increases the logging performance by a factor of 12.  For example, in the same environment Log4j 2 can write more than 18,000,000 messages per second, whereas other frameworks like Logback and Log4j 1 just write < 2,000,000 messages per second. Log4j 2 allows users to define their own log levels. Log4j can be configured through a configuration file or through Java code.  Configuration files can be written in XML, JSON, YAML, or properties file format.  Within a configuration, you can define three main components: Loggers, Appenders, and Layouts.  Configuring logging via a file has the advantage that log

WildFly

 WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat.  WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification.  It runs on multiple platforms. WildFly is free and open-source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1. On November 20, 2014, JBoss Application Server was renamed WildFly.  Configuration in WildFly is centralized, simple and user-focused.  The configuration file is organized by subsystems that you can easily comprehend and no internal server wiring is exposed.  All management capabilities are exposed in a unified manner across many forms of access.  These include a CLI, a web based administration console, a native Java API, an HTTP/JSON based REST API, and a JMX gateway. Official Website :- https://wildfly.org/ Download :- https://wildfly.org/downloads/

Jenkins

 Jenkins is an open source automation server.  It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.  It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands. The Jenkins project was originally named Hudson, and was renamed in 2011 after a dispute with Oracle, which had forked the project and claimed rights to the project name.  With hundreds of plugins in the Update Center, Jenkins integrates with practically every tool in the continuous integration and continuous delivery toolchain.

SonarQube

 SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells on 29 programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security recommendations. SonarQube can record metrics history and provides evolution graphs. SonarQube provides fully automated analysis and integration with Maven, Ant, Gradle, MSBuild and continuous integration tools. SonarQube includes support for the programming languages Java (including Android), C#, C, C++, JavaScript, TypeScript, Python, Go, Swift, COBOL, Apex, PHP, Kotlin, Ruby, Scala, HTML, CSS, ABAP, Flex, Objective-C, PL/I, PL/SQL, RPG, T-SQL, VB.NET, VB6, and XML. As of December 2021, analyzing C, C++, Obj-C, Swift, ABAP, T-SQL and PL/SQL is only available via a commercial license.

Junit

 JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit. JUnit is linked as a JAR at compile-time. The latest version of the framework, JUnit 5, resides under package org.junit.jupiter. Previous versions JUnit 4 and JUnit 3 were under packages org.junit and junit.framework, respectively. A JUnit test fixture is a Java object. Test methods must be annotated by the @Test annotation. If the situation requires it, it is also possible to define a method to execute before (or after) each (or all) of the test methods with the @BeforeEach (or @AfterEach) and @BeforeAll (or @AfterAll) annotations.

React (JavaScript library)

 React is a free and open-source front-end JavaScript library for building user interfaces based on UI components. It is maintained by Meta (formerly Facebook) and a community of individual developers and companies. React can be used as a base in the development of single-page, mobile, or server-rendered applications with frameworks like Next.js.  React adheres to the declarative programming paradigm. Developers design views for each state of an application, and React updates and renders components when data changes. React code is made of entities called components. Components can be rendered to a particular element in the DOM using the React DOM library. When rendering a component, one can pass the values between components through "props". React creates an in-memory data-structure cache, computes the resulting differences, and then updates the browser's displayed DOM efficiently. The basic architecture of React applies beyond rendering HTML in the browser.  For example,

AWS (Amazon Web Services)

 AWS is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide distributed computing processing capacity and software tools via AWS server farms. As of 2021, AWS comprises over 200+ products and services including computing, storage, networking, database, analytics, application services, deployment, management, machine learning, mobile, developer tools, RobOps and tools for the Internet of Things.  The most popular include Amazon Elastic Compute Cloud (EC2), Amazon Simple Storage Service (Amazon S3), Amazon Connect, and AWS Lambda (a serverless function enabling serverless ETL. Most services are not exposed directly to end users, but instead offer functionality through APIs for developers to use in their applications. Amazon Web Services' offerings are accessed over HTTP, using the REST architectural style and SOAP protocol for older AP

MongoDB

 MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL) which is deemed non-free by several distributions. MongoDB supports field, range query, and regular-expression searches. Fields in a MongoDB document can be indexed with primary and secondary indices or index. MongoDB provides high availability with replica sets. MongoDB scales horizontally using sharding. MongoDB can be used as a file system, called GridFS, with load balancing and data replication features over multiple machines for storing files. MongoDB provides three ways to perform aggregation: the aggregation pipeline, the map-reduce function, and single-purpose aggregation methods. MongoDB supports fixed-size collections called capped collections.  MongoDB claims to support multi-document ACID transactions since

Elasticsearch

 Elasticsearch is a search engine based on the Lucene library.  It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.  Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license, while other parts fall under the proprietary Elastic License. Shay Banon created the precursor to Elasticsearch, called Compass, in 2004. Elasticsearch can be used to search any kind of document.  It provides scalable search, has near real-time search, and supports multitenancy. "Elasticsearch is distributed, which means that indices can be divided into shards and each shard can have zero or more replicas.  Each node hosts one or more shards and acts as a coordinator to delegate operations to the correct shard(s).  Rebalancing and routing are done automatically". Related data is often stored in the same index, which consists of one or more primary shar

Node.js

 Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine (i.e. V8 engine) and executes JavaScript code outside a web browser, which was designed to build scalable network applications. There are thousands of open-source libraries for Node.js, most of them hosted on the npm website. There are multiple developer conferences and events that support the Node.js community, including NodeConf, Node Interactive, and Node Summit as well as a number of regional events. New major releases of Node.js are cut from the GitHub master branch every six months. Even-numbered versions are cut in April and odd-numbered versions are cut in October. When a new odd version is released, the previous even version undergoes transition to Long Term Support (LTS). Node.js is supported across a number of cloud-hosting platforms like Jelastic, Google Cloud Platform, AWS Elastic Beanstalk, Joyent and others.

Redis (Remote Dictionary Server)

 Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indices. The project was developed and maintained by Salvatore Sanfilippo, starting in 2009. Redis popularized the idea of a system that can be considered a store and a cache at the same time. It was designed so that data is always modified and read from the main computer memory, but also stored on disk in a format that is unsuitable for random data access. According to monthly DB-Engines rankings, Redis is often the most popular key–value database. Redis has also been ranked the #4 NoSQL database in user satisfaction and market presence based on user reviews, the most popular NoSQL database in containers.

Apache Kafka

 Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. Kafka was originally developed at LinkedIn, and was subsequently open sourced in early 2011. Apache Kafka is based on the commit log, and it allows users to subscribe to it and publish data to any number of systems or real-time applications. Kafka stores key-value messages that come from arbitrarily many processes called producers. The data can be partitioned into different "partitions" within different "topics". Within a partition, messages are strictly ordered by their offsets, and indexed and stored together with a timestamp. There are five major APIs in Kafka, Producer,Consumer,Connector,Streams & Admin. Monitoring E2E performance requires tracking metrics from brokers, consumer, and producers, in addition to monitoring ZooKeeper, which Kafka uses for coordination among consumers