Flozu has 28 kinds of part. A kind says what a part does: how traffic moves
through it and which limits it can have. It doesn’t
decide how the part looks, since any part can show any drawing.
A few kinds behave differently from the rest:
- Rate limiters, firewalls, gateways, sign-in and AI models can have a limit, and turn away
what’s past it.
- Queues and topics hold what’s waiting, and lines into and out of them start as messages.
- Schedulers start traffic by the clock, so their lines start as messages and a scenario’s
busier day doesn’t scale them.
- People, client apps and schedulers set the pace with the lines they send, so they have no
limits of their own.
“Usually followed by” is what Flozu suggests when you drop a line from that part on empty canvas.
People and apps
| Kind | Key | What it is | Usually followed by |
|---|
| Person | P | Someone who uses the system, such as a customer, an admin or a support agent. | Client app, CDN, Gateway |
| Client app | C | An app people use: a website, a mobile app, a desktop app or a device. | Gateway, CDN, DNS, Sign-in, Load balancer, Service |
The way in
| Kind | Key | What it is | Usually followed by |
|---|
| DNS | U | Turns names like shop.example.com into the addresses traffic is sent to. | CDN, Firewall, Load balancer, Gateway |
| CDN | E | Serves content from close to people and absorbs traffic before it reaches you. | Gateway, Firewall, Load balancer, Storage, Service |
| Firewall | V | Lets allowed traffic through and blocks the rest, such as attacks and bots. | Gateway, Load balancer, Service |
| Gateway | G | The front door for requests. It checks who's calling and routes each request. | Service, Sign-in, Rate limiter, Load balancer, Function |
| Sign-in | I | Checks who people are and hands out the tokens other parts trust. | Database, Cache, Service |
| Load balancer | L | Shares traffic between copies of a service so none of them gets swamped. | Service, Function, Gateway |
| Rate limiter | R | Lets a set amount through each second and turns the rest away. | Service, Gateway, Function |
Compute
| Kind | Key | What it is | Usually followed by |
|---|
| Service | S | A running program that answers requests, such as an API or a web server. | Database, Cache, Queue, Topic, Search, Service |
| Worker | W | Works through jobs in the background, usually taking them from a queue. | Database, Storage, Service, AI model, Data warehouse |
| Function | F | Code that runs when it's called and scales up and down by itself. | Database, Storage, Queue, AI model |
| Scheduler | J | Starts jobs on a timetable, such as a nightly export or a reminder every hour. | Worker, Queue, Function, Service |
| AI model | A | A language or machine learning model that the system calls. | Service, Database, Storage |
Messaging
| Kind | Key | What it is | Usually followed by |
|---|
| Queue | Q | Holds work in line until something is free to take it. Each item goes to one taker. | Worker, Function, Service |
| Topic | T | Broadcasts each event to every part that subscribes. | Worker, Function, Service, Queue, Data warehouse |
Data
| Kind | Key | What it is | Usually followed by |
|---|
| Database | D | Keeps the system's records, such as orders, customers and stock. | Database, Topic, Search, Data warehouse, Service |
| Cache | K | Keeps popular data in memory so it can be read quickly. | Database, Service |
| Search | H | An index that finds records by their words, such as products in a shop. | Database, Service |
| Storage | B | Holds files such as images, exports and backups. | Function, CDN, Worker, Data warehouse |
| Data warehouse | O | Gathers data from across the system so people can report on it and analyse it. | Client app, AI model, Storage |
Inside a service
| Kind | Key | What it is | Usually followed by |
|---|
| Endpoint | Y | A way into a service that others call, such as an HTTP route, an RPC method or an event handler. | Module, Service, Code file, Function |
| Module | M | A part of a service's code with one job, such as a package or a folder. | Module, Code file, Table, Library, Interface |
| Code file | None | One source file, named by its path. | Code file, Interface, Library, Table |
| Interface | None | A contract code depends on rather than a thing that runs, such as a TypeScript interface or an API spec. | Code file, Module |
| Library | None | A package the code is built on, such as stripe-node or a Go module. | Library |
| Table | None | A table, collection or index inside a store, where a service keeps its records. | Table |
Anything else
| Kind | Key | What it is | Usually followed by |
|---|
| Custom part | X | Anything that doesn't fit another kind. It behaves like a service. | Service, Database, Queue |