abp-microservice

Implements ABP microservice solutions with integration services and distributed events.

Updated May 8, 2026
One-click install
npx skills add https://github.com/afonsoft/EAF --skill abp-microservice-afonsoft
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: abp-microservice
Source: https://github.com/afonsoft/EAF/tree/main/.claude/skills/abp-microservice
Command: npx skills add https://github.com/afonsoft/EAF --skill abp-microservice-afonsoft

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Designing inter-service communication in ABP-based microservice architectures is error-prone: developers often misuse application services for service-to-service calls, skip the Outbox/Inbox pattern, or share implementation code between services. This Skill provides the correct patterns and code templates for building microservices with the ABP microservice solution template. ## Core Features & Use Cases - Integration Services: Step-by-step guidance for synchronous HTTP communication between services, including exposing integration services, generating C# proxies, and registering static HTTP client proxies. - Distributed Events: Patterns for asynchronous RabbitMQ-based messaging using ETOs, the distributed event bus, and the Outbox/Inbox pattern via IHasEventOutbox and IHasEventInbox. - Entity Cache: Configuration of IEntityCache for frequently accessed cross-service data with automatic invalidation. - Use Case: When building an ordering service that needs product data from a catalog service, follow the seven-step workflow to create an IProductIntegrationService, expose it, generate proxies with the ABP CLI, and consume it through a typed client. ## Quick Start Use the abp-microservice skill to set up synchronous communication between my ordering and catalog services in an ABP microservice solution.

Frequently Asked Questions about abp-microservice

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I call another microservice in an ABP solution?▼

Create an integration service in the provider's Contracts project, expose it via AbpAspNetCoreMvcOptions with ExposeIntegrationServices set to true, then generate C# proxies in the consumer using the ABP CLI and register them with AddStaticHttpClientProxies.

What is the difference between integration services and application services in ABP?▼

Integration services are designed for inter-service communication and marked with the IntegrationService attribute, while application services target UI clients with different authorization and validation needs. Use integration services, not application services, for service-to-service calls.

When should I use distributed events instead of HTTP calls in microservices?▼

Use RabbitMQ-based distributed events for notifications and state changes that do not need an immediate response, such as order placed or stock updated events. Use synchronous integration services when data is required to complete the current operation.

Does ABP microservice template support the Outbox pattern?▼

Yes, the ABP microservice template supports the Outbox and Inbox patterns for reliable event delivery. Your DbContext must implement IHasEventOutbox and IHasEventInbox, and event handlers should be idempotent since events may be delivered multiple times.

How do I cache data from other microservices in ABP?▼

Register an entity cache with AddEntityCache for the remote entity type, then inject IEntityCache to read cached DTOs. The cache automatically invalidates entries when the underlying entity changes, reducing repeated remote calls.