JavaScript DBMS with an API inspired by CouchDB

Image from freesvg.org

PouchDB is an open source client-side database API written in JavaScript. It is modelled after CouchDB — a NoSQL database that runs within the browser.

If you are not familiar with NoSQL databases, let me give you a short introduction. NoSQL is a term used for high-performance, non-relational databases. It provides a mechanism for storage and retrieval of data other than tabular relations model used in relational databases. These databases utilize a variety of data models, including document, graph, key-value, and column store. Checkout the list of NoSQL databases here.

Using PouchDB…


Messaging Queue enables asynchronous communication, where application puts a message onto a message queue and does not require an immediate response to continuing processing.

Image from Wikipedia

The producer and consumer do not interact directly with each other, but they interact with message queue. This way of handling messages decouples the producer from the consumer so that they do not need to interact with the message queue simultaneously.

In this article, we will look at how to build a simple message queue in Node.js and RabbitMQ.

Initializing Node.js Application

Initialize the application using the following commands:

mkdir node-queue cd node-queuenpm init -ytouch index.js

Install…


A guide to use Spring Expression Language with @Value annotation.

Image from Flickr

Spring Expression Language (SpEL) is a powerful expression language, which can be used for querying and manipulating an object graph at runtime. SpEL is available via XML or annotation, is evaluated during the bean creation time.

In this article, we will look at some basic examples of SpEL usage in Spring Boot.

Setting up Spring Boot Application

We will create a simple Spring Boot application and create employee.properties file in the resources directory.

employee.names=Petey Cruiser,Anna Sthesia,Paul Molive,Buck Kinnear
employee.type=contract,fulltime,external
employee.age={one:'26', two : '34', three : '32', four: '25'}

Create a class EmployeeConfig as follows:

package…

Many applications need to run some sort of scheduled tasks for chores like system maintenance, administration, taking a daily backup of data or sending emails. A Cron is a time-based job scheduler, which enables applications to schedule a job to run automatically at a certain date or time.

Node.js

There are various open source tools available for scheduling cron jobs in Node.js. In this article, we will look at a simple example using a module called node-cron.

Installing Dependencies

In this article, we would be creating a cron job to send emails. Create a simple Node.js …


Multi-threading is similar to multitasking, but enables the processing of executing multiple threads simultaneously, rather than multiple processes. The CompletableFuture, was introduced in Java 8, provides an easy way to write asynchronous, non-blocking and multi-threaded code.

Spring Boot and Multi-threading

The Future interface which was introduced in Java 5, to handle asynchronous computations. But, this interface did not have any methods to combine multiple asynchronous computations and handle all the possible errors. The CompletableFuture implements Future interface, it can combine multiple asynchronous computations, handle possible errors and offers much more capabilities.

Let’s get down to writing some code and see the benefits.

Create a…


GraphQL has been gaining popularity and it has made its way to the forefront of API development. There are several GraphQL clients available today for front-end frameworks. Apollo client is one of the popular clients for Angular applications.

In this article, we are going to build a small application using Angular and Apollo client. In my last article, I explained about creating a GraphQL server with Spring Boot. We will use the same example as Graph server for our Angular application.

Creating Angular Application

Let’s create a new Angular project using Angular CLI. Run the following command in a terminal or command prompt.


GraphQL is a query language for APIs that allows clients to request limited data they need, making it possible for clients to gather data in a limited number of requests. GraphQL is strongly typed protocol and all data operations are validated against a GraphQL schema.

In this article, we will build a simple GraphQL server with Spring Boot.

Adding Maven Dependencies

Create a sample Spring Boot application and add the following dependencies.

  1. graphql-spring-boot-starter is used for enabling GraphQL servlet and it becomes available at a path /graphql. It initializes GraphQLSchema bean.
  2. graphql-java allows to write schema with GraphQL schema language which is simple…

Most communications between microservices is either via HTTP request-response APIs or asynchronous messaging. While these two mechanisms are most commonly used, yet they’re quite different. It is important to know when to use which mechanism.

Spring Boot and ActiveMQ

Event-driven communication is important when propagating changes across several microservices and their related domain models. This means that when changes occur, we need some way to coordinate changes across the different models. This ensures reliable communication as well as loose coupling between microservices.

There are multiple patterns to achieve event-driven architecture. One of the common and popular one is messaging pattern. This is extremely scalable


Batch processing of data is an efficient way of processing large volumes of data where data is collected, processed and then batch results are produced. Batch processing can be applied in many use cases. One common use case of batch processing is transforming a large set of flat, CSV or JSON files into a structured format that is ready for further processing.

Spring Boot and Spring Batch

In this article, I am going to demonstrate batch processing using one of the projects of Spring which is Spring Batch. Spring Batch provides functions for processing large volumes of data in batch jobs. …


Most of the applications today serve users across the globe and need a way to deliver their content fast. The content can be images, videos, PDF and so on. Content delivery network (CDN) is a network of servers that are geographically distributed with the intent of serving content to users as fast as possible.

Image from Wikipedia

Amazon CloudFront is a content delivery network service which can deliver content fast and secure. In this article, I will describe how to upload files to S3 bucket and serve those files through CloudFront in Node.js. CloudFront will use S3 as an origin in this article.

Prerequisites

Swathi Prasad

Software Architect living in Germany. Sharing my opinion and what I learn.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store