+
Skip to content
/ api Public

Krater is a copy of reddit.com website for learning purposes written with modular monolith and DDD in mind.

License

Notifications You must be signed in to change notification settings

krater-app/api

Repository files navigation

Krater API

The "Krater" is nothing but a copy of a reddit-like app. The project was created for the purpose of learning Domain Driven Design, a Modular Monolith and event driven architecture.

Architectural Drivers 🏎

C4 Model 📡

Legend

Model C4 Legend

C1 System Context

Model C4 - System Context

C2 Container

Model C4 - Container

Modular Monolith 🗄

The project uses rush.js to treat each module as a separate package from the node.js perspective.

Domain Driven Design 👨🏼‍💼

In order to better understand and implement the application, Domain Driven Design (DDD) was used both from the strategic and tactical side.

Strategic Part 🙊

When it comes to discovering the domain, getting to know the actors and likely bounded contexts, the Event Storming technique was used.

Miro Board

A full session snapshot can be found at the Miro Board link.

Tactical Part 💻

Event Driven Architecture ✉️

Single module events 📦

Module communication with Outbox Pattern 📤

About

Krater is a copy of reddit.com website for learning purposes written with modular monolith and DDD in mind.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载