Wide Column Database Schema Design

Because relational database management systems have dominated IT for over 30 years, it is hardly surprising that although a vast amount of literature and material with regards to database schema design is available, most of it focuses on those traditional database systems. However, since NoSQL systems raised in popularity since 2007, knowledge of relational schema design is not sufficient any more. During this post I am going to outline differences and considerable aspects when doing the same for wide column database systems (and especially Apache Cassandra). Before going into any details, I will provide a brief recap on data modelling in general as well as techniques targeting traditional RDBMS. After reading this post, you will be able to understand why data modelling for NoSQL systems like Apache Cassandra follows different rules and what is necessary to design schemas for those systems.

By | 19.09.2017|Software Engineering|0 Comments

Camunda Spring-Boot Starter Database Configuration

Within my last post the Camunda Spring-Boot Starter application used a h2 in-memory database. In general this is a good approach while developing and testing, but it should be replaced by a persistent database in later development and production stages. Using Spring-Boot capabilities this can be easily achieved by configuration. Within this post we will create a Camunda Spring-Boot starter database configuration which uses h2 in-memory database during automated tests only. For all other scenarios a MySQL database is used.

By | 21.07.2017|Software Engineering|0 Comments

Camunda Spring-Boot Starter Project Setup

In course of my current project I experimented with Camunda BPM Spring-Boot starter throughout this week. Within this post Camunda Spring-Boot project setup using Apache Maven will be described.

By | 19.07.2017|Software Engineering|0 Comments

Maintenance Mode for your API

I recently implemented a simple maintenance mode for a REST API. Letting the web server return a 503 Service Unavailable sounds easy enough. But there was a catch displaying a maintenance page in our Angular client application.

By | 05.07.2017|Software Engineering|0 Comments

Meine wichtigsten Erfahrungen als Product Owner

Vor ein paar Tagen bin ich auf den Blog-Artikel "Agile Mythen: User Stories schreiben ist Product Owner Aufgabe" von Anna Rudat gestoßen. Als Enthusiast der agilen Softwareentwicklung und Product Owner Veteran, wurde ich mit der Meinung, dass allein der Product Owner für das Schreiben der User Stories allein verantwortlich ist, schon häufig konfrontiert. Nachdem ich den Artikel gelesen hatte, erinnerte ich mich an meinen letzten Einsatz als Product Owner und wie mein Team und ich uns in dieser Hinsicht geschlagen haben.

By | 19.05.2017|Software Engineering|0 Comments

Sorted String Table in Apache Cassandra

From my previous blog post you already know that data written to Apache Cassandra is persisted into so called Sorted String Table (SSTable) files eventually. During this article I'm going to explain the Apache Cassandra data directory and SSTable format in more detail.

By | 08.05.2017|Software Engineering|0 Comments

Apache Cassandra: Performance explained

As you know, top use cases for Apache Cassandra include user activity tracking, Internet of Things (IoT) applications, product catalogue lookups and time-series-based applications in general. Not only but especially for those use cases, high throughput rates can be achieved by using Apache Cassandra as a database management system. But how is that possible? Let me explain.

By | 06.04.2017|Software Engineering|0 Comments

Writing integration tests for Elasticsearch

Elasticsearch is a search engine technology to implement powerful and fast search features. Like every additional component of your Java application Elasticsearch should be covered by integration tests. In this blogpost I show how tests can be written using alexcojocarus Maven plugin.

By | 02.02.2017|Software Engineering|0 Comments

Microservices, ein Vorgehensmodell zur Softwareentwicklung

Der Microservice-Ansatz wird häufig als ein Architekturstil für den Entwurf von verteilten Softwaresystemen gesehen. Er ermöglicht die Implementierung eines Systems durch eine größere Menge von kleinen Diensten (Services). Führt man Unterhaltungen über Microservices werden häufig nur technischen Faktoren genannt. Dabei werden andere Bereiche des Microservice-Ansatzes, die Aufteilung der Services, wie die Services Entwickelt werden und was für Änderungen in der Team und Firmenstruktur nötig sind oft außer acht gelassen. Gerade diese Aspekte können jedoch für den Erfolg eines Projektes essentiell sein und charakterisieren den Microservice-Ansatz daher nicht nur als Architekturstil, sondern auch als Vorgehensmodell zur Softwareentwicklung.

By | 10.01.2017|Software Engineering|0 Comments

Fachartikel: Unleashing Java Security

Innerhalb von Enterprise-Anwendungen spielen Sicherheits-Aspekte eine wichtige Rolle. Nur autorisierte Benutzer oder allgemein autorisierte Entitäten dürfen auf sensible Daten oder Systemteile zugreifen.

By | 09.01.2017|Software Engineering|0 Comments