abp-microserviceslisted
Install: claude install-skill burakdmir/abp-skills
# ABP Framework — Microservices
ABP v10.4 microservice template (Business+). Synchronous = Integration Services, asynchronous = distributed events. YARP gateway + OpenIddict auth server.
## Trigger
"ABP microservices", "integration service", "inter-service communication", "distributed event", "YARP gateway", "auth server".
## Structure
```
apps/{web,public-web,auth-server} gateways/web-gateway(YARP)
services/{administration,identity,...} etc/{docker,helm}
```
Services are NOT layered: a single project + `*.Contracts` (interface/DTO/ETO) + `*.Tests`. DbContext: `IHasEventInbox`, `IHasEventOutbox`.
## Synchronous — Integration Service
```csharp
// Contracts
[IntegrationService]
public interface IProductIntegrationService : IApplicationService
{ Task<List<ProductDto>> GetProductsByIdsAsync(List<Guid> ids); }
// Service
[IntegrationService]
public class ProductIntegrationService : ApplicationService, IProductIntegrationService { /* ... */ }
// Provider module: options.ExposeIntegrationServices = true;
// Consumer module: context.Services.AddStaticHttpClientProxies(typeof(CatalogServiceContractsModule).Assembly, "CatalogService");
```
```bash
abp generate-proxy -t csharp -u http://localhost:44361 -m catalog --without-contracts
```
```json
"RemoteServices": { "CatalogService": { "BaseUrl": "http://localhost:44361" } }
```
> Use an Integration Service, not an application service. When: immediate response + data needed for the operation.
## Asynchronous — Distributed Even