Skip to content

konradrenner/stammdaten

Repository files navigation

publishingcompany

This Java application represents an architecture showcase for an application which is implemented with ideas from DDD and Clean Architecture.

It consists of an client app based on JavaFX/Gluon (ready for cross compiling on different platforms, e.g. with GitHub Actions) and a server part based on Quarkus (which exposes its functionality with some RESTful endpoints and a tiny UI created with JSF).

Domain

The technical basis is a bookstore "publishing company". In the bookstore, various publications (books or blog posts) are managed for authors.

The following sketch provides an overview of the domain:

domain ueberblick

Architecture

You find a detailed architecture documentation, based on the arc42-Template in the site-folder of the publishingcompany-service (the rendered arc42 PDF which is created during each build is located in the published-docs folder). The mentioned document is thought as an showcase for how to connect arc42, DDD, Event Storming and C4-Model with the ideas of docs-as-code.

The showcase combines ideas from the two standard works "Domain Driven Design" and "Clean Architecture".

The package structure is based on the BCE concept (boundary control entity) to enable a simple and standardized structure.

All 3 concepts mentioned complement each other perfectly, for the combination of Clean Architecture (indicated as hexagonal in the article, but the basic idea is the same) and BCE, the following link offers a good start: http://www.cs.sjsu.edu/~pearce/modules/patterns/enterprise/ecb/ecb.htm .

Shown schematically, the application is structured as follows:

clean architcture

Running

The publishingcompany-service can be operated in Quarkus "dev" mode "standalone".

Otherwise, a running instance of the currency-service is required. So that this service can be operated in a kind cluster, for example, the repo contains a corresponding script for initializing the cluster and the corresponding Kubernetes manifests for installing the services in the *-infra folder.

About

Architecture Blueprint

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published