Motley - Patterns for mocking architecture

Let's do an actor mocking library that 1. Validates the soundness of the mocked actors by the fact that it actually compiles 2. Validates the patterns of actor interactions with a simple test suite.

Goals

Stretch Goals

Non-Goals

rs todo!()

TURN BACK NOW

Ranting by the author and some ideas and motivations

Visualize in the same manner as mdBook

impl as traits with enum impls? generate from OpenAPI spec? output to OpenAPI spec? output to OpenAPI spec with examples? output to ORM tooling? output to Rust framework? output to Go framework? outputting a sub implementation to a lang or spec is a good idea and can help spin up complicated systems

RPC Service * HTTP * Request Resource (common endpoint) * Nesting? * List - GET /resource * Show - GET /resource/:id * Create - POST /resource * Update - PUT /resource/:id * Delete - DELETE /resource/:id * Request Object * Headers (struct) * Path Parameters (struct) * Query Parameters (struct) * Body (struct) * Response Object * Headers (struct) * Status Code (enum) * Body (struct) * gRPC * Service Object * RPC Methods * Request Object * Metadata (struct) * Message (struct) * Response Object * Metadata (struct) * Message (struct) * Stream Methods * Request Object * Metadata (struct) * Message (struct) * Response Object * Metadata (struct) * Message (struct)

Database Service * Relational * Repository pattern * Specific highlevel functions defining the CRUD operations * ORM pattern (LATER) * Generic CRUD operations only * Likely a late stage goal due to the complexity of the ORM pattern * Raw SQL (LATER) * SELECT, INSERT, UPDATE, DELETE * NoSQL * Key/Value * Document * Graph * Columnar * Time Series * Search * Caching layer?

Message Queue Service * Pull based * Pull - GET /queue/:queuename * Ack - POST /queue/:queuename * Nack - POST /queue/:queuename * Push based * Push -> Ack/Nack - POST /queue/:queuename * Request Object * Metadata * Body