Hystrix Command - Java 8 helpers
Let me start by acknowledging that what I am posting here is far from original, it is inspired by the post here by Demian Neidetcher which was further adapted by two of my former colleagues - Alexey...
View ArticleSpring Web-Flux - Functional Style with Cassandra Backend
In a previous post I had walked through the basics of Spring Web-Flux which denotes the reactive support in the web layer of Spring framework. I had demonstrated an end to end sample using Spring Data...
View ArticleIntegrating Gatling into a Gradle build - Understanding SourceSets and...
I recently worked on a project where we had to integrate the excellent load testing tool Gatling into a Gradle based build. There are gradle plugins available which make this easy, two of them being...
View ArticleCloud Foundry Custom User Provided Services(CUPS) and tagging
Custom User Provided Services or CUPS for short is a way to deliver credentials for external services to an application hosted on Cloud Foundry. Consider a set of credentials represented as a json of...
View ArticleRatio based routing to a legacy and a modern app - Netflix Zuul via Spring Cloud
A very common requirement when migrating from a legacy version of an application to a modernized version of the application is to be able to migrate the users slowly over to the new application. In...
View ArticleSpring Boot Web Slice test - Sample
Spring Boot introducedtest slicing a while back and it has taken me some time to get my head around it and explore some of its nuances. BackgroundThe main reason to use this feature is to reduce the...
View ArticleSpring Webflux - Kotlin DSL
Spring Webflux has introduced a feature for defining functional application endpoints using a very intuitive Kotlin based DSLThis post will be to simply show a contrasting api defined using a Java...
View ArticleCloud Foundry Application manifest using Kotlin DSL
I had a blast working with and getting my head around the excellent support for creating DSL's in Kotlin Language.This feature is now being used for creating gradle build files, for defining routes in...
View ArticleKotlintest and property based testing
I was very happy to see that Kotlintest, a port of the excellent scalatest in Kotlin, supports property based testing.I was introduced to property based testing through the excellent "Functional...
View ArticleIntegrating with RabbitMQ using Spring Cloud Stream
In my previous post I wrote about a very simple integration scenario between two systems - one generating a work unit and another processing that work unit and how Spring Integration makes such...
View ArticleKotlintest and property based testing
I was very happy to see that Kotlintest, a port of the excellent scalatest in Kotlin, supports property based testing.I was introduced to property based testing through the excellent "Functional...
View ArticleConcourse caching for Java Maven and Gradle builds
Concourse CI 3.3.x has introduced the ability to cache paths between task runs. This feature helps speed up tasks which cache content in specific folders - here I will demonstrate how this feature can...
View ArticleGradle Kotlin DSL
Gradle build scripts can now be written using a dsl with Kotlin Language. All the concepts that work with traditional gradle build translate to a very intuitive dsl in Kotlin and have two additional...
View ArticleSpring Webflux - Kotlin DSL - a walkthrough of the implementation
In a previous blog post I had described how Spring Webflux, the reactive programming support in Spring Web Framework, uses a Kotlin based DSL to enable users to describe routes in a very intuitive way....
View ArticleTesting time based reactor core streams with Virtual time
Reactor Core implements the Reactive Streams specification and deals with handling a (potentially unlimited) stream of data. If it interests you, do check out the excellent documentation it offers....
View ArticleKata - implementing a functional List data structure in Kotlin
I saw an exercise in chapter 3 of the excellent Functional Programming in Scala book which deals with defining functional data structures and uses the linked list as an example on how to go about...
View ArticleRaw performance numbers - Spring Boot 2 Webflux vs Spring Boot 1
SummarySpring Boot 2 with Spring Webflux based application outperforms a Spring Boot 1 based application by a huge margin for IO heavy workloads. The following is a summarized result of a load test -...
View ArticleUsing Micrometer with Spring Boot 2
This is a very quick introduction to using the excellent Micrometer library to instrument a Spring Boot 2 based application and recording the metrics in PrometheusIntroductionMicrometer provides a Java...
View ArticleAnnotated controllers - Spring Web/Webflux and Testing
Spring Webflux and Spring Web are two entirely different web stacks. Spring Webflux, however, continues to support an annotation-based programming modelAn endpoint defined using these two stacks may...
View ArticleSpring Webflux - Writing Filters
Spring Webflux is the new reactive web framework available as part of Spring 5+. The way filters were written in a traditional Spring MVC based application(Servlet Filter, HandlerInterceptor) is very...
View Article