Microservice Startup Template

Distributed Systems Made Easy

This is a complete solution architecture that consists of multiple applications, API gateways, microservices and databases to build a scalable microservice solution with the latest technologies.

You can get it for your next microservice system to take advantage of the pre-built base solution and distilled experience.

Microservice

Who is For?

In the following conditions, you may consider to build a microservice system:

If your domain is too complex to develop and maintain in a single monolith codebase.

If your business domain is possible to  split into sub-domains.

If you have  multiple teams that will work on the solution in parallel.

If you need to develop, test,deploy  and scale services independently.

If you need to use multiple technology stacks so, some services can be built with .NET, and others can be built with Java, Python, etc...

If you need to serve too many users concurrently with a  high available and fault tolerant system.

If you have DevOps knowledge and culture in your company. If you can deal with complex development, build, test, deployment and production environments.

Get Started

Start your microservice journey with confidence. Our comprehensive getting started guide covers everything from initial setup to your first deployment, ensuring you build on a solid foundation.

Document Link

Web Application Development Tutorial

Learn microservice development by building something real. This tutorial guides you through creating a complete web application, from initial architecture decisions to production-ready deployment, with practical examples you can actually use.

Document Link

Solution Structure Guide

Understand the blueprint of successful microservice applications. This guide reveals the architectural decisions, folder structures, and organizational patterns using ABP Studio.

Document Link

Pre-integrated to Popular Tools

The solution is already integrated into the industry-standard tools and technologies, while you can always change them and integrate to your favorite tools.

Pre-integrated to Popular Tools

Multiple UI Options

We love different ways to create the UI. This startup solution provides three UI framework options for your business application.

Multiple UI Options

2 Web Applications wiht 2 API Gateways

The solution contains two web applications, each one has a dedicated API gateway (BFF - Backend For Frontend pattern).

Back Office Application

Back Office Application

The actual web application of your system, with multiple UI framework options. You can create any kind of business application.

Landing Website

Landing Website

A generic landing/public website that can be used for several purposes, like introducing your company, selling your products, etc.

Single Sign-on Authentication Server

The solution has an authentication server application that is used by the other applications as a single sign-on server with the API access management features. It is based on the Openiddict implementation.

Single Sign-on Authentication Server

Multi-tenancy for your SaaS Business

The solution has been fully configured to support multi-tenant systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.

Multi-tenancy for your SaaS Business

Kubernetes & Helm Configuration is Included

The microservice solution template includes Helm charts for each microservice, API gateway, application, and infrastructure (Redis, RabbitMQ, etc.). You can use these charts to deploy the solution to a Kubernetes cluster.

See Technical Document
Kubernetes & Helm Configuration is Included

Automated Tests Pre-Configured

Automated tests are essential in any serious software product. The startup solution template has the following libraries already installed and configured for you:

While you are free to replace them with your favorite tools, the startup solution template is ready to author your test code.

See Technical Document

Authentication

The Microservice Solution Template  is fully configured for authentication. All the services and applications are configured to use the OpenIddict library for authentication. They are configured in a common way for authentication. This document explains that common authentication structure.

The solution has an authentication server (auth-server) application to provide the token generation, validation and account (login, register, etc) pages. It uses the account module. The account module also provides the  social logins (Google, Facebook, etc.) feature. You can enable/disable and configure the social logins from the application UI.

See Technical Document

Monitoring with Built-in Features

In a distributed system it is important to monitor the health of the system and the services. Monitoring helps to detect issues before they become problems and helps to understand the system's behavior. All the services, applications and gateways are configured to use the  Prometheus and Grafana libraries for monitoring. They are configured in a common way for monitoring. The document explains that common monitoring structure.

See Technical Document

Logging with Built-in Features

The ABP Studio  Microservice Solution Template is fully configured for logging. All the services, applications and gateways are configured to use the Serilog library for structured logging. They are configured in a common way for logging. The document explains that common logging structure.

See Technical Document

Pre-Installed Libraries & Services

All the following libraries and services are pre-installed and configured for both of development and production environments. After creating your solution, you can change to remove most of them.

Easily Add Microservices for ABP's Pre-Built Modules

All of the pre-built application modules are microservice compatible and the core framework fully supports and simplifies distributed application development.

See All Modules
Easily Add Microservices for ABP's Pre-Built Modules

Mobile Application

The ABP Studio microservice solution template comes with an optional mobile application that is completely integrated to the solution. There are two options for the mobile application:

MAUI: Cross-platform mobile applications with .NET MAUI (Multi-platform App UI). You can create MAUI projects with ABP Studio.

React Native: Cross-platform mobile applications that share code between iOS and Android platforms. You can create React Native projects with ABP Studio.

See Technical Document
Mobile Application

UI Theme

The LeptonX theme is pre-configured for the solution. You can select one of the color palettes (System, Light, or Dark) as default, while the end-user dynamically change it on the fly.

  • 1 Simplified menu.
  • 2 Your favorite pages at your reach.
  • 3 Breadcrumb for seamless switching.
  • 4 Your menu, as you wish.
  • 5 RTL support for your language.
  • 6 Easily arrange your content width.
  • 7 Your colors on your admin dashboard UI.
Explore LeptonX
UI Theme

Outbox/Inbox Patterns for Transactional Messaging

Outbox Pattern

The  transactional outbox pattern  is used to publishing distributed events within the same transaction that manipulates the application's database. When you enable outbox, distributed events are saved into the database inside the same transaction with your data changes, then sent to the actual message broker by a separate  background worker  with a re-try system. In this way, it ensures the consistency between your database state and the published events.

Inbox Pattern

The transactional inbox pattern, on the other hand, saves incoming events into database first. Then (in a  background worker) executes the event handler in a transactional manner and removes the event from the inbox queue in the same transaction. It ensures that the event is only executed one time by keeping the processed messages for a while and discarding the duplicate events received from the message broker.

See Technical Document

Seamlessly Add new Microservices to the System using the ABP Studio

This screen allows you to include extra microservices in your ABP solution during the creation process. This feature lets you extend your solution with business-specific services right from the start.

See Technical Document

Code Generation with ABP Suite

ABP Suite allows you to easily create CRUD pages. You just need to define your entity and its properties and let the rest go to ABP Suite for you!

Learn More

Database Configurations

The document explains the database configuration and migration structure that is designed and implemented in the ABP Studio Microservice solution template.

See Technical Document