Why choose microservices (and why not to)

Microservices are often seen as a default architecture for numerous new projects, as well as a target architecture for legacy systems migration. But in reality it’s not always suitable approach. In this post we’ll review advantages and drawbacks of the microservices architecture.

Structuring events in a messaging system

This post describes some general principles that can be used to create an event structure for a messaging system. They can be applied to any practical domain assuming that “events” concept is part of it.

Domain Specific Containers (DSC): Concept

Domain specific containers (DSC) are building blocks of domain platform model described in previous post. DSC allow applications to be executed in a safe way that guarantees data ownership will be retained by the platform.

App Ecosystems and Data Ownership

This blog post describes concept that allows companies to build application ecosystems while retaining control over sensitive user data.

How to Build Secure Callback URLs

Some API integrations require work with callback URLs for proper data exchange. In this post we’ll review some techniques that allow to use this integration feature securely. This is important for projects containing sensitive information such as personal, medical or financial records.

RESTful API Security Principles

This is an excerpt from the “API Security” book I am working on. It explains how high level security design princples can be applied to RESTful APIs. Hope you find it interesting!

How to Dockerize Java RESTful API Application

The goal of this post is to show how to get a Java RESTful API application (based on Jersey framework) into a Docker container. This guide assumes you have Docker, Java and Maven installed.

DC/OS: local deployment using Vagrant

DC/OS (Datacenter Operating System) is an open source platform enabling enterprises to easily build and run modern apps in production. It literally abstracts datacenter into a single computer. DC/OS is suitable for various application types and infrastructure agnostic by design. It runs on top of any bare-metal, private or public clouds. Even local deployment on a single machine is possible and quite easy (useful for testing, development and demo purposes).

Google Cloud Platform for static website hosting

Nowadays speed of website is very important factor that affects conversion and overall user experience. Since significant amount of data loaded for every page belongs to static assets (such as images, CSS and JavaScript files) category optimization of delivery here can contribute a lot to overall website load speed.

Kafka or RabbitMQ: depends on your messages nature

Message queue is a well known architectural pattern that provide an asynchronous communication protocol. It means that sender and receiver of the message are completely detached, they do not need to interact with a queueing system at the same time.