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.
The project covers the entire process - from identifying Bounded Contexts to implementing microservices using
cutting-edge technologies and best practices.
We're constantly researching the best solutions on the market so that we can benefit our
community and solve a problem for millions of people.
Please star ⭐ the repo if you want us to continue developing and improving ShortLink! 😀
An architecture decision record (ADR) is a document that captures an important architecture decision made along with its context and consequences.
Decisions:
DETAILS
Bounded Context | Service | Description | Language/Framework | Docs | Status |
---|---|---|---|---|---|
API Boundary | api-cloudevents | Internal GateWay | Go | docs | |
API Boundary | api-graphql | Internal GateWay | Go | docs | |
API Boundary | api-grpc-web | Internal GateWay | Go | docs | |
API Boundary | api-http | Internal GateWay | Go | docs | |
API Boundary | api-ws | Websocket service | Go | docs | |
API Boundary | bff-web | BFF for web | Go | docs | |
Payment Boundary | billing | Billing service | Go | docs | |
Payment Boundary | wallet | Wallet service | Go (Solidity) | docs | |
Notification Boundary | bot | Telegram bot | JAVA | docs | |
Notification Boundary | newsletter | Newsletter service | Rust | docs | |
Notification Boundary | notify | Send notify to smtp, slack, telegram | Go | docs | |
Chat Boundary | chat | Chat service | Elixir (Phoenix) | docs | |
Integration Boundary | chrome-extension | Chrome extension | JavaScript | docs | |
Integration Boundary | ai-plugin | ChatGPT plugin | JSON | docs | |
ShortDB Boundary | shortdb | Custom database | Go | docs | |
ShortDB Boundary | shortdb-operator | Kubernetes Operator for shortdb database | Go | docs | |
Platform Boundary | csi | CSI example | Go | docs | |
Platform Boundary | logger | Logger service | Go | docs | |
Platform Boundary | shortctl | Shortlink CLI | Go | docs | |
Link Boundary | link | Link service | Go | docs | |
Link Boundary | proxy | Proxy service for redirect to original URL | TypeScript | docs | |
Link Boundary | metadata | Parser site by API | Go | docs | |
Marketing Boundary | referral | Referral program | Python | docs | |
Marketing Boundary | stats | Stats service | CPP | docs | |
Marketing Boundary | reports | Report service | Go (Temporaal) | docs | |
Marketing Boundary | gamification | Gamification service | Coming soon | docs | |
Delivery Boundary | merch | Merch store | Go (Dapr) | docs | |
Delivery Boundary | support | Support service | PHP | docs | |
Search Boundary | search | Search service | Coming soon | docs |
DETAILS
Service | Description | Language/Framework | Docs | Status |
---|---|---|---|---|
ory/kratos | User management service | Go | docs | |
ory/hydra | OAuth 2.0 Provider | Go | docs | |
backstage | Backstage is an open platform for building developer portals. | TypeScript | docs | |
grafana | Grafana is the open source analytics & monitoring solution for | More | docs | |
cert-manager | Automatically provision and manage TLS certificates in Kubernetes | Go | docs | |
istio | Istio is an open platform to connect, manage, and secure microservices. | Go | docs | |
nginx-ingress | Ingress controller for Kubernetes using NGINX | Go | docs | |
kafka | Kafka is used as a message broker | Java | docs | |
keycloak | Keycloak is an open source identity and access management solution | Java | docs |
- UI: README - UI for ShortLink
- MOBILE: README - Mobile app for ShortLink
This service support ChatGPT as plugin.
You can use it for ChatGPT by link https://shortlink.best/.well-known/ai-plugin.json
You can read official docs here for more information.