Part I

Establish#

In this part of the book, we establish the idea of scalability and developing web applications in scale. Besides developing your first book project, you will start to think about different aspects related to scalability to form your own view of the topic. These learnings will come in handy in the latter parts of the book as you will rebuild your project twice but in a different way.

I.1 Book project - Work Activity Tracker#

The Establish project specification shows what you should implement during this part of the book. Essentially you will be implementing the book project using a single, locally hosted agent. As a result, you should end up with a baseline for comparison and the architecture of the application does not have to be final as you will refine it during the other two iterations as you understand the topic better. The key thing is to get used to agent driven development using a small model first.

The specification leaves many decisions open deliberately, and you can customize the domain to your liking while choosing your own technical stack, rendering approach, storage, architecture, deployment path, and one specific implementation question worth investigating. There is no single right way to implement the project, but likely there are better and worse ways as we might learn after completing all three iterations.

Note that while you cannot transfer the implementation to the following parts of the book, you can take requirements, acceptance tests, examples, evidence templates, and any lessons you gained to them. In this sense, each project is a greenfield one when it comes to the implementation.

I.2 Implementation discovery lab#

Use this lab to turn the shared specification into a direction to explore. As a result, it gives you a document that you can improve further.

Implementation discovery lab

Find a direction worth building three times

The behavior is shared. Your interpretation, stack, architecture, and experiment are yours to choose.

0/4 anchors Begin with the character of your implementation.
Interpret the common brief

Keep the required behavior, but decide what kind of product your version feels like. There is no preferred interpretation.

Need a starting point? Borrow a lens, then change anything you dislike.
Keep the common workspace capability, but choose its meaning and vocabulary: a project, room, run, campaign, class, site, or something else.
Map the required lifecycle to something concrete. It could be a task, job, case, experiment, scene, agent assignment, or repair.
Choose one user and one moment to optimize. This gives the interface a point of view without adding more required features.

I.3 What is covered in this part of the book#

In this part of the book, we will first define what is scalability before focusing on scalable development, and benchmarking to generate a measured baseline to compare against as you proceed with the book projects.