Software Architecture

Creating GraphQL APIs using Elixir Phoenix and Absinthe

Creating GraphQL APIs using Elixir Phoenix and Absinthe

GraphQL is a new hype in the Field of API technologies. We have been constructing and using REST API's for quite some time now and started hearing about GraphQL recently. GraphQL is usually described as a frontend-directed API technology as it allows front-end developers to request data in a more simpler way than ever before. The objective of this query language is to formulate client applications formed on an instinctive and adjustable format, for portraying their data prerequisites as well as interactions.

The Phoenix Framework is running on Elixir, which is built on top of Erlang. Elixir core strength is scaling and concurrency. Phoenix is a powerful and productive web framework that does not compromise speed and maintainability. Phoenix comes in with built-in support for web sockets, enabling you to build real-time apps.

In this blog we will explore how to build GraphQL APis for Phoenix/Elixir using Absinthe.

An Introduction to Asynchronous Programming in Python

An Introduction to Asynchronous Programming in Python

Asynchronous programming is a type of parallel programming in which a unit of work is allowed to run separately from the primary application thread. Asynchronous programming has been gaining a lot of attention in the past few years, and for good reason. Typically Node.js is associated with Asynchronous programming. Although, nowadays other languages including Python do support Asynchronous programming.

This blog acts an introduction to asynchronous programming in Python and explores different ways in which to achieve that.

A Beginner's Guide to Edge Computing

A Beginner's Guide to Edge Computing

There is a recent trend in change in architecture of the way data is stored and compute is done. Edge computing is one of such phenomena in which either the data or the compute is decentralized and taken to the nearest nodes of the user it can either be smartphone or local region servers.

In this blog we will delve into what Edge Computing really is, it’s various types, and see how it is implemented and managed in the real world.

Demystifying High Availability in Kubernetes using Kubeadm

Demystifying High Availability in Kubernetes using Kubeadm

Kubernetes allows deployment and management container-based applications at scale. One of the main advantages of Kubernetes is how it brings greater reliability and stability to the container-based distributed application, through the use of dynamic scheduling of containers.  But, how do you make sure Kubernetes itself stays up when a component or its master node goes down?

In this blog we look at the steps to ensure that your kubernetes cluster is always highly available and fault tolerant.

Lessons learnt while building an ETL pipeline for MongoDB & Amazon Redshift using Apache Airflow

Lessons learnt while building an ETL pipeline for MongoDB & Amazon Redshift using Apache Airflow

Recently, the author was involved in building a custom ETL(Extract-Transform-Load) pipeline using Apache Airflow which included extracting data from MongoDB collections and putting it into Amazon Redshift tables. 

Each ETL pipeline comes with a specific business requirement around processing data which is hard to be achieved using off-the-shelf ETL solutions. This is why a majority of ETL solutions are built manually, from scratch. In this blog, I am going to talk about my learnings around building an optimized, efficient, near real-time and fault tolerant custom ETL solution using Apache Airflow which involved moving data from MongoDB to Redshift.

Real Time Text Classification using Kafka and scikit-learn

Real Time Text Classification using Kafka and scikit-learn

Text classification is one of the important tasks in supervised machine learning (ML). Assigning categories to text, which can be tweets, facebook posts, web page, library book, media articles, gallery etc. has many applications like spam filtering, sentiment analysis etc.

In this blog we build a text classification engine to classify topics in an incoming Twitter stream using Apache Kafka and scikit-learn - Python based Machine Learning Library.

Web Scraping: Introduction, Best Practices & Caveats

Web Scraping: Introduction, Best Practices & Caveats

Web Scraping is the process of data extraction from various websites present over the internet. Web Scraping has a wide variety of use cases. Marketing & Sales Intelligence companies use web scraping to fetch customer related information, Real Estate Tech companies use web scraping to fetch real estate listings, Price Comparison Portals use web scraping to fetch product and price information from various e-commerce sites. This blog is meant to be a primer on building highly scale-able scrappers. The blog will cover different ways to scrape, how to scrape at scale and guidelines while writing scrappers.

A practical guide to deploying multi-tier applications on Google Container Engine (GKE)

A practical guide to deploying multi-tier applications on Google Container Engine (GKE)

In this blog, we look at how to deploy, scale & delete a Multi-tier (Flask/Python and MySQL) Application in Google Container Engine.

Elasticsearch 101: Fundamentals & Core Components

Elasticsearch 101: Fundamentals & Core Components

Elasticsearch is currently the most popular way to implement free text search in your application. This blog post is an introduction to Elasticsearch including components and data types. It covers the some of the basic but important concepts of Clusters, different types of Nodes, Documents, Mappings, Indices, and Shards.

Surviving & thriving in the age of software accelerations

Enterprises need to adopt a new approach to software development and digital innovation. At Velotio, we are helping customers to modernize and transform their business with all of the approaches and best practices listed here in this blog. We talk in detail about how to achieve agility, cloud native development, DevOps maturity, micro-services adoption, digital transformation and build intelligent applications using data science in a secure environment.

A Primer on HTTP Load Balancing in Kubernetes using Ingress on Google Cloud Platform

A Primer on HTTP Load Balancing in Kubernetes using Ingress on Google Cloud Platform

Containerized applications and Kubernetes adoption in cloud environments is on the rise. One of the challenges while deploying applications in Kubernetes though is exposing these containerised applications to the outside world. This blog explores different options via which applications can be externally accessed with focus on  Ingress - a new feature in Kubernetes that provides an external load balancer. This blog also provides a simple hand-on tutorial on Google Cloud Platform (GCP).  

Serverless Computing: Predictions for 2017

Serverless is the emerging trend in software architecture. 2016 was a very exciting year for serverless and adoption will continue to explode in 2017. This post covers the interesting developments in serverless space in 2016 and our thoughts on how this space will evolve in 2017.