A microservice-based fintech application for managing company identities, processing payments, and handling transactions securely.
The application consists of three main microservices:
- Identity Service: Manages company registration and API credentials
- Order Service: Handles order creation and verification
- Payment Processor Service: Processes payments through different networks
- Company registration and API key management
- Secure order creation and processing
- Payment processing via web interface or API endpoint
- Transaction routing based on card details
- Order status tracking and updates
- Asynchronous order computation
- .NET Core
- PostgreSQL
- Entity Framework Core
- RabbitMQ
- Docker
- Swagger/OpenAPI
- OTEL Collector
- Grafana
- Loki
- Tempo
- Prometheus
- Company
- Id
- Name
- APIKey
- APISecret
POST /companies: Create new companyGET /companies/{id}: Retrieve company details
- Order
- OrderId
- CompanyId
- Amount
- Currency
- Status
- CreatedAt
POST /orders: Create new orderGET /orders/compute: Compute total orders
- Daily completed order limit: $10,000 per company
- URL:
http://localhost/pay/{OrderId} - Inputs: Card number, expiry date
- Features:
- Order validation
- Payment routing logic
- Status notifications
POST /process- Parameters:
- OrderId
- CardNumber
- ExpiryDate
- Features:
- Input validation
- Payment routing
- Status updates
-
Company Registration
- Register via Identity Service
- Receive API credentials
-
Order Creation
- Authenticate using API credentials
- Create order through Order Service
- Receive unique OrderId
-
Payment Processing
- Choose payment method (web interface or API)
- Enter payment details
- System routes to appropriate service based on card number
- Update order status
-
Order Computation
- Request order computation
- Async processing with 2-minute simulation
- Receive results via webhook/notification
- Docker and Docker Compose
- .NET Core SDK
- PostgreSQL
API documentation is available via Swagger at:
- Identity Service: http://localhost:8080/swagger
- Order Service: http://localhost:8082/swagger
- Payment Service: http://localhost:8084/swagger
- RabbitMQ: http://localhost:15672/
- Grafana: http://localhost:3000/
# Clone repository
git clone [repository-url]
# Navigate to project directory
cd fintech-microservices
# Start services using Docker Compose
docker-compose up