ENGINEERING NOTE / 06
A modular ASP.NET Core platform
Arista Exchange grew beyond a static page. Its application now separates domain rules, use cases, persistence, web delivery, and background processing.
In this note 03 questions
Why a modular monolith?
Modules can keep their responsibilities clear while sharing one deployable application. It avoids distributing a small team's workflow across services before the product needs that complexity.
Where do domain rules belong?
Rules for identity, verification, and transfer state should remain separate from controllers and database details. Web requests call application services; infrastructure supplies persistence and external integrations.
Why use a background worker?
The outbox records work with the business transaction. A worker can then deliver optional notifications with retries without making a user-facing request depend on the notification provider.