shortlink

module
v0.0.0-...-f2070d0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: MIT

README

ShortLink is an open-source educational project that provides a pretty user interface and respects GDPR.

The goal of the project is to demonstrate the practical application of microservices architecture.

Artifact Hub PkgGoDev codecov Go Report Card Releases LICENSE CII Best Practices StackShare FOSSA Status DeepSource


SLSA

High Level Architecture 🚀

The project covers the entire process - from identifying Bounded Contexts to implementing microservices using cutting-edge technologies and best practices.

shortlink-architecture Please star ⭐ the repo if you want us to continue developing and improving ShortLink! 😀

Boundaries

[!TIP]

Our project follows Domain-Driven Design (DDD) principles, organizing code into distinct domains for clarity and easier updates.

Bounded Context Description Type subdomain Docs
API Gateway Gateway for all services Supporting docs
Auth Boundary Auth services Generic docs
Billing Boundary Payment services Generic docs
Chat Boundary Chat services Supporting docs
Delivery Boundary Delivery services Supporting docs
DS Boundary Data Science services Supporting docs
Extension Boundary Extension services Supporting docs
Link Boundary Link services Core docs
Marketing Boundary Marketing services Supporting docs
Notification Boundary Notification services Generic docs
Platform Boundary Platform services Supporting docs
Search Boundary Search services Supporting docs
Shop Boundary Shop services Supporting docs
ShortDB Boundary ShortDB services Supporting docs
UI Boundary UI services Supporting docs
Contributing
Architecture decision records (ADR)

[!IMPORTANT] An architecture decision record (ADR) is a document that captures an important architecture decision made along with its context and consequences.

Decisions:

Also, each boundary context and service has its own ADR. You can find them in the relevant sections.

License

[!WARNING]

This project includes dependencies licensed under the GNU Lesser General Public License (LGPL). Users must comply with LGPL terms when using or modifying these dependencies. For detailed information on each LGPL library used in this project, please refer to the respective license documentation included with each library. For comprehensive license compliance information, including dependencies and their licenses, you can read more details in our FOSSA report.

FOSSA Status

Directories

Path Synopsis
boundaries
auth/auth/cmd
Shortlink application
Shortlink application
billing/billing/cmd
Shortlink application
Shortlink application
chat/speech-to-text/cmd
Chat boundary
Chat boundary
link/metadata/cmd
Metadata application
Metadata application
Metadata Service.
Metadata UC.
Metadata UC.
platform/logger/cmd
Shortlink application
Shortlink application
api/bff-web Module
link/link Module
platform/csi Module
docs
internal
di
Main DI-package
Main DI-package
di/pkg/config
Config package
Config package
services/csi Module
pkg
batch
Package for work in batch mode
Package for work in batch mode
db
Data Base package
Data Base package
freeport
Get free port
Get free port
fsm
logger
Logger
Logger
mq
Message Queue
Message Queue
notify
Package notify provides a simple notification system.
Package notify provides a simple notification system.
observability/traicing
Tracing wrapping
Tracing wrapping
pattern/eventsourcing
Package event_store - implementation of event store
Package event_store - implementation of event store
rpc
s3
uow
poc
cel
Example use CEL (Common Expression Language)
Example use CEL (Common Expression Language)
go-orm Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL