ZenWave 360º

The critical complexity of most software projects is in understanding the domain itself. - Eric Evans in Domain-Driven Design

👉 ZenWave360 Helps You Create Software Easy to Understand

Being easy to understand should be the gold standard of good and maintainable software.

ZenWave 360º is a set of tools built on the foundations of Domain Driven Design and API-First principles for Event-Driven Architectures.

Domain Driven Design and API-First for Event Driven Microservices

The domain model is a powerful communication tool. It provides a shared vision of the structure and behavior of the system.

Event-Driven Architecture reflects how we conduct business in real life - asynchronously and in response to events. That is why it is gaining popularity as the go-to architectural pattern for building enterprise applications.

Our lives and businesses are a continuous sequence of events. We are perpetually responding to these events and initiating new ones. This is a reflection of how we operate in the real world. Therefore, Event-Driven Architectures (EDAs) are ideally suited for creating software that accurately represents and empowers our business processes.

Domain-Driven Design (DDD) is a software development approach that emphasizes the importance of understanding the business domain in order to create effective software. Design, in the DDD sense, is really about understanding, not inventing. Focusing on creating software that matches the mental model of the problem domain.

With a good understanding of the business process we want to model even the simplest architectural pattern suffices for crafting software that's straightforward and maintainable.

On the other hand with a poor understanding of the business process we want to model, there is no amount of clean code, clean architecture, SOLID principles, hexagonal, event-driven... that will make your code easy to maintain and to evolve because with a poor understanding, new requirements will spring as a surprise shaking the foundations of your previous design.

ZDL Domain Model Language as 'Ubiquitous Language' format

ZDL is a developer friendly domain model format, that can map the discoveries of Event-Storming workshops capturing the essence of Event-Driven Domains while maintaining the business language brought up during Event-Storming sessions.

ZDL Domain Model Language is
  • Developer Friendly: compact and concise format resembling a very lightweight programing language.
  • Retaining the Business Language discovered during Event-Storming sessions
  • And because it's also Machine Friendly it can be converted into multiple software artifacts propagating that Common/Ubiquitous Language automatically and effortless.

Efectively closing the Gap between Domain Experts, Technical Experts and Working Software & Tests

Domain Driven Design Triangle

ZenWave SDK Accelerates your Development Cycle

Code is not the center, but merely one expression of the model.

Because the most effective way to model is to do so in the context of a running system that can demonstrate whether the model actually works. ZenWave SDK helps you convert your Domain Models into working Software & Tests.

ZenWave SDK accelerates your development cycle by converting your Domain Models into well crafted software artifacts you can assemble into a running application.

With ZenWave SDK you can quickly convert your models into working software:

  • API definitions: OpenAPI and AsyncAPI v2/v3
  • Multiple backend implementations with Spring-Boot and Spring-Cloud: with JPA and MongoDB flavors.
  • SpringMVC RestControllers from OpenAPI + ZDL: complete controller skeletons with their mapstruct mappers, connecting the inside of your backend with the external world through your APIs.
  • API-First code generator for AsyncAPI v2/v3 for producing and consuming async events.
  • API-Testing with Spring WebTestClient and KarateDSL.

ZenWave SDK main purpose is to help you produce successful software projects by dramatically shortening the feedback loop between the expert domain knowledge and working software and its tests.

Domain Driven Design Feedback Loop

In this way all team members: Domain Experts, Product Owners, Software Architects, Developers and Testers can provide early feedback based on an Ubiquitous Language (ZDL) and the software and tests generated from that model.

ZenWave 360º Landscape

ZenWave 360º is a set of tools that help you create software that is easy to understand, maintain and fulfill the requirements of your users.

  • ZDL Domain Modeling Language
    • ZenWave SDK: CLI and Maven Plugin
    • ZenWave Editor: IntelliJ Plugin
    • ZenWave Models Catalog: <coming soon>

 

ZenWave360 Landscape