4563d1e01f14359aab52208b48b01f19b9d46a39
crossnokaye-interview-assignment
Go/Goa Design Homework Assignment Prerequisites
-
Basic familiarity with the Goa framework, including the following:
-
Introduction
-
Getting Started
-
Frequently Asked Questions
-
Design Overview
-
Examples
-
Assignment
Build a microservice application that stores characters and their item inventories for a multiplayer game. The application should be composed of the following microservices that communicate with each other:
- An HTTP/JSON front service which provides an API to manipulate the characters, their inventories, and the items that exist
- A GRPC back service that handles CRUD operations for the items that exist and their attributes
- A GRPC back service that handles CRUD operations for the characters and their attributes
- A GRPC back service that handles CRUD operations for the characters’ inventories The front service should not have any state of its own and should call the appropriate back services via GRPC to implement its operations. The back services may store their state in memory. CRUD operations mean create, read, update, and delete; however, read should include both listing and showing an individual record.
The microservices should be written in Go using the Goa framework and provided as a GitHub repository.
Items
Items should have the following attributes:
-
A unique name
-
A description
-
An amount of damage they can do
-
An amount of healing they can do
-
An amount of protection they can provide
Characters
Characters should have the following attributes:
- A unique name
- A description
- An amount of health
- An amount of experience
Inventories
Inventories should associate a set of items with a character.
Description
Languages
Go
97.8%
Shell
2.1%
Procfile
0.1%