Last Friday I was in a meeting that ran through the history of 99's architecture and explaining the reasoning behind some technical decisions that led to where we are now. To reaffirm where we are now are stack consists of:
Multiple smaller services written in Go, the request and responses sent from these services abide by a contract defined in a Protocol Buffer file, the functions written in our services generate clients that can be consumed by other services, this code generation is done by Twirp, we have one large frontend monorepo which is all React and GraphQL, the frontend also has a service inside of it which resolves the GraphQL requests (query, mutation, subscription) and generally consumes the clients generated from the Go services
Some other notes I took from the meeting were as follows:
- Workbench, home for designers, designer profiles, your work, as a client get overview of your work across the platform
- Handover, designers handing over designs to client, process after they win a contest
- Start is for launching projects, homepage
- Launch flows taken out of start and contents and put into create, reduces load on contests