Testing Serverless Systems

Designing a system architecture is always about making tradeoffs. Microservices resp. serverless architecture has a lot of benefits, but some drawbacks as well. One of them is testing. Testing serverless systems is hard. In this article I will discuss some practices which work for my project.

How AWS Lambda Executes Node.js Functions

Based on my question on StackOverflow I did a bit investigation about how (likely) are Node.js functions called in AWS Lambda containers.

Secure Communication between Services in Multitenant Systems

Implementing a SaaS as a multitenant system brings a lot of benefits. As usual, there are some tradeoffs, too. For example security becomes more complex. Let's take a look at possible approaches when implementing security in a multitenant architectrure.

Multiple LDAP Servers Integration

When an administative solution (like Global Catalog) is not possible or wanted and we have to integrate more LDAP servers under one hood there is a simple way how to do it with MyVirtualDirectory.

Building a simple REST API

In my previous article I showed how to build a simple RESTful microservice. For sake of simplicity I skipped some good practices for building REST APIs and I feel a bit guilty about that. I think that topic deserves its own article. And here we go... we take a look at the previous API and try to do things better.

PHP Restful API Microservices

How difficult is to properly implement the microservices design pattern in PHP? It will definitely need some thinking and maybe to leave some convince behind. At the end of the day we should have an autonomous loosely coupled service with all the benefits (and drawbacks) of microservices.
In this article we do a little walk-through of a development process of a small RESTful microservice in PHP and we take a look at some Domain-Driven Design (DDD) theory as well.

Meaning of Queues and Topics in AWS

Queues and topics are standard communication channels in messaging systems.
How to use then in AWS, for example to implement the Competing Consumers pattern?

Debugging jasmine-ts in IntelliJ IDE

TypeScript application wants tests to be written in TypeScript as well, right?
There is a great library to achive this: jasmine-ts
But how to debug such tests within your IntelliJ IDE?

Stop Boundary I/O Streams Released!

The library for boundary I/O streams brought the possibility to work with multiple stream written in a single stream.
But what if the stream continues further without containing any more sub-stream? In this case we can use the new released Stop Boundary Stream feature from the same library to ignore the rest of the stream after a boundary was reached.

Process Watch Dog with Heartbeat Released!

It's nice to watch a process execution and kill frozen processes after timeout, but when a process is supplying data is not frozen even when it takes a long time.
Release 1.1.0 introduces a new process wrapper to send a heartbeat to reset the timeout explicitly or automatically with every read byte.