Split clients by responsibility
Applications can use a focused client for email, contacts, conversations, or CRM. Shared HTTP and configuration concerns live in the abstractions layer.
A modular .NET integration layer for communication and customer-management APIs, with shared authentication and error handling.
The business problem
Connecting a business application to email and CRM APIs creates repeated work: authentication, request handling, response models, and failures. A reusable integration layer gives application teams a consistent boundary to work with.
A shared integration foundation with focused clients for communication and customer-management operations, designed for dependency injection in .NET applications.
Architecture overview
Key decisions
The choices that shape how the system can be changed, reviewed, and operated.
Applications can use a focused client for email, contacts, conversations, or CRM. Shared HTTP and configuration concerns live in the abstractions layer.
Typed exceptions distinguish rate limits and account-access failures from other API errors. Rate-limit timing is exposed to the caller; the application decides whether and when an operation should be retried.
ASP.NET Core sample APIs show how the clients fit into an application. Tests cover request handling and specific failure paths, including rate-limit and payment-required responses.
Implementation
Apply this to your project
Discuss the system, the constraints, and the first useful piece of work.
Discuss your project