I started of this segment called Design Patterns and Principles long back, but I somehow missed DIP of Solid Principles. It is high time I add the missing piece. Dependency Inversion Principle (DIP) states that a high level modules should not depend on low level modules and both should depend on abstraction. Further more, abstractions should not … Continue reading SOLID : Dependency Inversion Principle
Author: Anu Viswan
Twilio Meeting Notification API
Twilio is a cloud based communication platform, which allows, among others, developers to use their apis to host video calls. In this blog post, we will use the Twilio API, to create a meeting request and also get notified when User joins the meeting. The first step involves logging into to your Twilio account and … Continue reading Twilio Meeting Notification API
Atmos SFTP Docker Container with OpenSSH support
In this post, I intent to outline the how to set up a Docker container for Atmos SFTP and use SSH Keys to login to it.Atmos is an easy to use SFTP with OpenSSH support. Step 1: Generate SSH Keys The first step would be to generate the SSH Keys. You can do so in … Continue reading Atmos SFTP Docker Container with OpenSSH support
Long running REST EndPoint
This article outlines how to invoke a long running operation at a REST end-point. The core idea revolves around assuring the REST end-point returns immediately, while the responsibility of communicating the result of long runnning process back to the client is transferred to a web-socket. REST Endpoint. The first task involves creating a REST Endpoint … Continue reading Long running REST EndPoint
Upload to Azure Blob from Web Api
In the earlier post, we learned how to set up docker containers for Azurite. In this post, we will continue with process and create a Web API to exposure end points to upload file to the Azure Blob and to download them. Let's go ahead create our Web Api. I will skip the entire project creation part, … Continue reading Upload to Azure Blob from Web Api
Set up Azurite Docker container.
In this post, we will set up docker container for Azurite. The Azurite open-source emulator provides a free local environment for testing your Azure Blob, Queue Storage, and Table Storage applications. When you're satisfied with how your application is working locally, switch to using an Azure Storage account in the cloud. The emulator provides cross-platform … Continue reading Set up Azurite Docker container.
Scaling with Docker Compose and Configuring Load Balancer
Recently I was creating a load balancer for my web api with nginx. Since I was using docker to test in my local machine, I used the scale arguement to scale my Web API container. nt.authservice.service:ports:-"8101-8105:80" Scaling using docker-compose -f server\nt.microservice\docker-compose.yml -f server\nt.microservice\docker-compose.override.yml up --scale nt.authservice.service=5 -d This however resulted in following error. Error response … Continue reading Scaling with Docker Compose and Configuring Load Balancer
GraphQL Day 004 : Subscriptions
So far we have seen Queries and Mutations in GraphQL. It is now time to look into third and final key component of the triage - Subscriptions. Subscriptions allow GraphQL servers to send real time updates to subscribed clients when particular events occur. This allows clients to support real-time functionality by having the servers push the updates … Continue reading GraphQL Day 004 : Subscriptions
Tristate checkbox in Vue JS
HTML 5 does support checkboxes with tri-state (true, false, indeterminate). Indeterminate refers to a state where it is not either checked or unchecked. This works fine, however, once an checkbox moves from indeterminate to true/false, it can not go back to indeterminate. This was when I had to research a bit (and I did not want to use … Continue reading Tristate checkbox in Vue JS
GraphQL Day 003 : Defining Mutations
Until now, we dealt with, what we could call a readonly system. In other words, we defined queries which does not alter the system. But what if we intent to alter the system, for example, we want to add a new record. This is where mutation comes into the play. The mutation type in GraphQL is used … Continue reading GraphQL Day 003 : Defining Mutations