page banner
avatar
'Storing polymorphic objects with ReactiveMongo and Play' post illustration
Storing polymorphic objects with ReactiveMongo and Play

ReactiveMongo is an extremely convenient toolkit for working with MongoDB in Scala applications. But, at the same time, its documentation does not cover some of the typical scenarios, so sometimes it takes time to find the right solution. One of such tasks - storing polymorphic objects in a database - is the focus of this blog post.

avatar
'Manage session creation timestamp in Lift' post illustration
Manage session creation timestamp in Lift

Lift framework lacks the ability to fetch a session creation timestamp by default. This post will provide a short example of how one can do this while working with Lift.

avatar
'Implementing file download functionality in Lift' post illustration
Implementing file download functionality in Lift

This post describes two approaches to implementing file download in Lift framework. Firstly, we will have a look at the implementation that uses ResponseShortcutException described in the Lift Cookbook. Then, I'll show how to solve the same task with the help of REST service in the way that follows a common Lift approach. Each of the methods has its own pros and cons, so it's up to you to decide which one works better for your task.

avatar
'How to set request throttling on a dispatch HTTP client' post illustration
How to set request throttling on a dispatch HTTP client

Let's consider the ability to limit the number of HTTP requests being handled by an application simultaneously.

avatar
'How to build a simple MongoDB DAO in Scala using SalatDAO' post illustration
How to build a simple MongoDB DAO in Scala using SalatDAO

Usually a data access object for MongoDB consists of common routine CRUD methods. Those methods should be implemented, tested, maintained just like any other code. In this post, I'm going to show you how to use SalatDAO to vastly simplify the process.

Generally, Salat is used for serialization of case classes, enums and collections to

avatar
'RESTful service load testing using Gatling 2' post illustration
RESTful service load testing using Gatling 2

In this post, I am going to show how to create load tests for a REST API application with the help of Gatling 2. This will be a step-by-step guide — starting from integrating Gatling 2 using SBT plugin, creating/configuring test scenarios, and all the way to running the Gatling tests.

avatar
'Managing configuration of a distributed system with Apache ZooKeeper' post illustration
Managing configuration of a distributed system with Apache ZooKeeper

One of the steps towards building a successful distributed software system is establishing effective configuration management. It is a complex engineering process which is responsible for planning, identifying, tracking and verifying changes in the software and its configuration as well as maintaining configuration integrity throughout the life cycle of the system.

Let's consider how to store and manage configuration settings of the entire system and its components using Apache ZooKeeper, a high-performance coordination service for distributed applications.

avatar
'Scala REST API Integration Testing with Spray-testkit' post illustration
Scala REST API Integration Testing with Spray-testkit

Here you can find out how to create integration tests for RESTful service on the example of application shown in the article "Building REST service with Scala". To create the tests, I am going to use spray-testkit DSL, as it provides a simple way to test route logic for services built with spray-routing.

avatar
'Building REST service with Scala' post illustration
Building REST service with Scala

Enterprise application might be developed using a variety of architectural styles. And REST is one of the most powerful of them. It allows us to build simple, scalable, highly productive APIs with independent components on the basis of widespread standards like HTTP, MIME etc, engaging their true potential.

Let's discuss how to create a lightweight, but full-featured RESTful service from scratch.