Ausgangslage

Moderne Software-Anwendungen müssen zunehmend für multiple Plattformen zur Verfügung gestellt werden. Kunden wollen mit ihrer Software auf verschiedensten mobilen Endgeräten (bspw. iOS und Android), in Browser-basierten Anwendungen oder als klassische Desktop-Applikation interagieren. Zusätzlich greifen serverseitig verschiedene Technologiestacks (bspw. J2EE, Spring) auf die gleichen Datenbestände zu. Werden die dafür erforderlichen Datenhaltungsschichten (Daten-APIs, Caching, Synchronisation, Datenbankzugriffsschicht, Datenbank) manuell implementiert, drohen inhomogene Datenhaltungsschichten, die schwer zu warten und aufwändig zu erweitern sind. Die Einführung neuer Features für alle unterstützen Plattformen wird dadurch aufwändig, langwierig und fehleranfällig.