Category: Custom Development

Security in a Reactive Microservices Architecture

In a reactive system, if something goes down you don’t want it to take the whole ship with it. Security becomes a top priority. In this blog, we’ll address security while designing a reactive authorization architecture. JSON Web Tokens Applying the reactive manifesto to microservice architecture is a difficult problem to solve. One of the more

What to Consider When Selecting a Streaming Framework

On a project for a client, we faced a problem where our application wasn’t scaling sufficiently. At the end of this post, I’ll let you know which framework we chose, and why. We’ll focus less on comparing the frameworks and more on what I had to learn just to participate in the evaluation necessary to

Stream Smarter: Reactive Systems Using Reactor and Spring

Reactor 3.x is a Java library for writing reactive applications using the Reactive Streams standard. Reactor Core provides a reactive systems implementation similar in style to RxJava 2. Because it is based on standard reactive streams, Reactor can easily integrate with any other reactive streams library (particularly RxJava 2). There are adapters available for RxJava 1

Looking at the Elm Language as an AngularJS Developer

Over the last several years, there has been increasing discussion of functional programming, both abstract concepts and concrete language implementations. While JavaScript can support functional programming concepts, the AngularJS framework does not provide a purely functional approach. If you’re not familiar with functional programming, we’ll quickly explore some of the basics of functional programming and the Elm language.


Reactive Microservices in Java Using the Lagom Framework

Microservice architecture is amongst the latest in best practices in software architecture. Essentially, microservices are small, independent applications that provide REST APIs for communication. These applications are akin to the Unix philosophy of small programs: each program does one thing and does it well. Each application should work on its own and be independently deployable,

Shop keeper checking candle inventory on a tablet

Software Maintainability – Considering Off the Shelf vs. Roll Your Own

Maintainability is essential to software quality. There are many aspects that come into consideration while building maintainable software. One of them is – building your own utility or infrastructure vs. picking up something ‘Off the self’.


Getting Started with Docker on Azure

As organizations move to hybrid and/or multi-provider clouds, Docker plays a key role in abstracting underlying platform configuration details away from implementations, allowing developers to build consistently-functioning solutions that can be tested and run in identical configurations, and that can be reliably deployed to disparate environments. In this post we’ll cover running Docker containers on Azure using Docker Machine and using Docker storage volumes for persistent storage.


Getting started with Apache Spark

Earlier this year I attended GOTO Conference which had a special track on distributed computing. One of the talks described the evolution of big data processing frameworks. It was really interesting when a presenter mentioned that Hadoop’s MapReduce is a first generation network, Apache Storm and Apache Tez are second generation, where as Apache Spark is

make unit testing great again: value

Making Unit Testing Great Again. Part 3 : Unit tests that should have never been written…

In my previous post I showed you how, through refactoring we can split decision makers and “orchestrators”, thus removing external dependencies from our decision makers and making them much easier to unit test. If you got to the 3rd part of this post, I will assume that you agree with me and believe pure “orchestrators”

Container Engine Container Cluster screen shot

Configuring Persistent Storage with Docker and Kubernetes

With DevOps becoming one of the most widely-used buzzwords in the industry, automated configuration management tools like Docker, Ansible, and Chef have been rapidly increasing in popularity and adoption. In particular, Docker, which allows teams to create containerized versions of their applications that can be run without additional virtualization overhead, and is widely supported by