Skip to main content

Preferred Tech Stack

APIs:

  • .NET Core 3.1 (C#);
  • AWS Lambda;
  • Serverless framework.
  • AWS API Gateway;
  • Hackney Lambda authoriser (for authentication).
    • [See more](../API-Practices and tools/lambda_authoriser);
  • FxCop for static code analysis.
  • dotnet-format for linting.
    • [See more](../API-Practices and tools/linting);
  • AWS Canaries for availability monitoring.

Testing:

  • nUnit;
  • FluentAssertions;
  • Moq;
  • Bogus (Faker) for faking test data;
  • AutoFixture;
  • WebApplicationFactory (Microsoft.AspNetCore.Mvc.Testing).
    • For bootstrapping the application (API) in memory and run end-to-end tests;
  • Docker & docker-compose.
    • For spinning up DB image containers and running tests against that database ;
    • During local development and during test run as part of CI/CD;

For more guidance on testing, go to the testing section.

Common:

  • Swagger documentation.
    • For API design prior to implementation;
    • Automated Swagger docs for each API endpoint deployed;
    • [See more](../../API Documentation/swagger_documentation.md);
  • CircleCI for CI/CD.
  • GitHub for version control.
  • AWS for cloud hosting;
  • AWS CloudWatch for monitoring;
  • Terraform for Infrastructure as Code (IaC) (e.g. setting up AWS DMS).
  • AWS Parameter Store for secrets (connection string and similar);