1. Resolving dependency conflicts in maven

    Sometimes it is necessary to use the same library in two different versions in one application. This is when dependency hell arises. This post describes how to quickly resolve it in maven.

    dependency conflicts, java, maven shade plugin

  2. Blocking and non-blocking frameworks

    In my master thesis I evaluated performance of blocking and non-blocking web frameworks in the context of distributed RESTful micro services. Non-blocking frameworks tend to have higher scalability as the processor is not wasted on context switching between threads. This post summarizes my findings.

    blocking, future, java, jvm, microservices, non-blocking, scala, web framework

  3. HMAC Authentication

    Recently I was working on yet another startup project (mobile app with backend). The goal was to make the backend stateless and highly scalable. I did not want to maintain sessions. So I was looking for authentication and authorization mechanism for RESTful APIs which is scalable, secure and appropriate for mobile. The solution was HMAC. This post describes how to handle it using spray.io.

    angularjs, authentication, hmac, js, scala, security, spray