Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 4: Consider adding topic of API sizing #61

Open
kuromogeko opened this issue Jan 22, 2025 · 2 comments
Open

Chapter 4: Consider adding topic of API sizing #61

kuromogeko opened this issue Jan 22, 2025 · 2 comments

Comments

@kuromogeko
Copy link

Hi,
I think chapter 4 would benefit from drivers and heuristics used when "sizing" an API.
An experience I often had when reviewing APIs was that the "sizing" was not well done. APIs tried to serve too many use cases at once or had 20 different stakeholders (which all had to coordinate their changes). I think adding an LG would help the curriculum as LG 4-1 explains any potential issues and naming heuristics for preventing them gives participants a better chance to prevent "gigantic unmaintainable APIs" from happening.

Top of my head the following heuristics might be of interest. You probably know a lot more

  • One Consumergroup/ Stakeholder per API
  • Singular business process
  • DDD: No API spanning several bounded contexts
  • Only one represenation for each resource

(All of them sharing the motivation "single reason for change".)

Drivers might be

  • An mvp size to create a marketable product
  • A set of features encompassing a use case
  • Predefined Team sizes or intention or parallel development
  • ...
@dret dret changed the title Chapter 4: Consider adding topic of api sizing Chapter 4: Consider adding topic of API sizing Jan 22, 2025
@dret
Copy link
Contributor

dret commented Feb 10, 2025

@programming-wolf, as much as I agree that this is a useful discussion to have in the training, do you think that's relevant enough to become part of the learning goals and the curriculum?

@dret dret mentioned this issue Feb 10, 2025
@programming-wolf
Copy link
Contributor

It's basically what you learn in foundation level: separation of concerns, interface segregation principle, etc.

It should be discussed in the training, as it is (un)common sense to design APIs properly and according to their use case, but I personally would not add it as a separate learning goal.

But: neither am I an expert, nor do I have any stakes in this curriculum.

If this occurs in multiple trainings that this concept is new to participants, we can still consider to add it in a .x release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants