Agentic Design Patterns

Mike's Notes

This book looks interesting.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

09/10/2025

Agentic Design Patterns

By: Antonio Gulli
On a Sandy Beach: 01/10/2025

Note by Pawel Huryn
The Product Compass

A senior AI engineer at Google just dropped a 400-page book for review: Agentic Design Patterns.

It’s got everything about AI agents + code:

  • Prompting
  • MCP
  • Tools
  • RAG
  • Memory
  • Humans in the loop
  • Multi-agent
  • Guardrails
  • You name it

You can read it here (Google Drive + links to chapters): docs.google.com/documen…

Remember to pre-order (published by Springer): a.co/d/b5SxY8t (all royalties go to Save the Children).


Agentic Design Patterns

A Hands-On Guide to Building Intelligent Systems Antonio Gulli

Table of Contents - total 424 pages   = 1+2+1+1+4+9+103+61+34+114+74+5+4 11

Dedication, 1 page 

Acknowledgment, 2 pages  [final, last read done]

Foreword, 1 page   [final, last read done]

A Thought Leader's Perspective: Power and Responsibility   [final, last read done]

Introduction, 4 pages [final, last read done]

What makes an AI system an "agent"?, 9 pages [final, last read done]

Part One, (Total: 103 pages)

  1. Chapter 1: Prompt Chaining (code), 12 pages [final, last read done, code ok]

  2. Chapter 2: Routing (code), 13 pages [fina, last read done, code ok]

  3. Chapter 3: Parallelization (code), 15 pages [final, last read done, code okl]

  4. Chapter 4: Reflection (code), 13 pages [final, last read done, code okl]

  5. Chapter 5: Tool Use (code), 20 pages [final, last read done, code ok]

  6. Chapter 6: Planning (code), 13 pages [final, last read done, code ok]

  7. Chapter 7: Multi-Agent (code), 17 pages [final,  last read done, code ok], 121

Part Two (Total: 61 pages)

  1. Chapter 8: Memory Management (code), 21 pages [final, last read done, code ok]

  2. Chapter 9: Learning and Adaptation (code), 12 pages [final, last read done, code ok]

  3. Chapter 10: Model Context Protocol (MCP) (code), 16 pages  [final, last read done, code ok]

  4. Chapter 11: Goal Setting and Monitoring (code), 12 pages [final, last read don, code oe], 182

Part Three (Total: 34 pages)

  1. Chapter 12: Exception Handling and Recovery (code), 8 pages [final,  last read done, code ok]  

  2. Chapter 13: Human-in-the-Loop (code), 9 pages [final, last read done, code ok]

  3. Chapter 14: Knowledge Retrieval (RAG) (code), 17 pages [final, last read done, code ok], 216

Part Four (Total: 114 pages)

  1. Chapter 15: Inter-Agent Communication (A2A) (code), 15 pages [final, last read done, code ok]

  2. Chapter 16: Resource-Aware Optimization (code), 15 pages  [final,  last read done, code ok]

  3. Chapter 17: Reasoning Techniques (code), 24 pages [final,  last read done, code ok]

  4. Chapter 18: Guardrails/Safety Patterns (code), 19 pages [final, last read done, code ok]

  5. Chapter 19: Evaluation and Monitoring (code), 18 pages [final, last read done, code ok]

  6. Chapter 20: Prioritization (code), 10 pages [final, last read done, code ok ]

  7. Chapter 21: Exploration and Discovery (code), 13 pages [final, last read done, code ok],330

Appendix (Total: 74 pages)

  1. Appendix A: Advanced Prompting Techniques, 28 pages [final, last read done, code ok]

  2. Appendix B - AI Agentic ….: From GUI to Real world environment, 6 pages [final, last read done, code ok]

  3. Appendix C - Quick overview of Agentic Frameworks, 8 pages [final, last read done, code ok] ,

  4. Appendix D - Building an Agent with AgentSpace (on-line only), 6 pages [final, last read done, code ok]

  5. Appendix E - AI Agents on the CLI (online) , 5 pages [final, last read done, code ok]

  6. Appendix F - Under the Hood: An Inside Look at the Agents’ Reasoning Engines, 14 pages [final, lrd, code ok],

  7. Appendix G -  Coding agents, 7 pages  406

Conclusion, 5 pages [final, last read done] 

Glossary, 4 pages  [final, last read done]

Index of Terms, 11 pages  (Generated by Gemini. Reasoning step included as an agentic example) [final, lrd]

Online Contribution - Frequently Asked Questions: Agentic Design Patterns

Pre Print:>https://www.amazon.com/Agentic-Design-Patterns-Hands-Intelligent/dp/3032014018/ 

 [1] All my royalties will be donated to Save the Children

8 load balancing algorithms you should know

Mike's Notes

I found this via Neo Kim's SubStack. Very useful.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

11/01/2026

8 load balancing algorithms you should know

By: Petar Ivanov
The T-shaped Dev: 05/09/2025

A weekly newsletter sharing practical tips on React, Node, and Software Architecture. Elevate your Full-Stack JavaScript skills to the next level!.

1. Round Robin:

  • It sends each new request to the next server in a rotating order.
  • Useful when all servers have similar capabilities and you want to spread the load evenly.

2. Least Connections:

  • It directs traffic to the server with the fewest active connections.
  • Useful when servers have different workloads, balancing them more efficiently.

3. Weighted Round Robin:

  • It gives more requests to servers with higher weights or capacities.
  • Useful when some servers are more powerful and can handle more traffic.

4. Weighted Least Connections:

  • It considers both server capacity and current connections to assign requests.
  • Useful when servers differ in performance, ensuring a fair distribution.

5. IP Hash:

  • It uses the client's IP address to decide which server will handle the request.
  • Useful to keep a client connected to the same server, which is important for session consistency.

6. Least Response Time:

  • It sends requests to the server with the quickest response and fewest connections.
  • Useful to reduce delays and improve the user experience.

7. Random:

  • It picks a server at random for each new request.
  • Useful when you don't need to consider server load or differences in server capacity.

8. Least Bandwidth:

  • It directs traffic to the server using the least network bandwidth at the moment.
  • Useful when managing network usage is important to prevent congestion.


[IMG]

Image Credits: DesignGurus

How SQL JOINs work

Mike's Notes

Another gem from Neo Kim. I'm a visual learner and like the use of Venn Diagrams in the sketch.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > The System Design Newsletter
  • Home > Handbook > 

Last Updated

07/10/2025

How SQL JOINs work

By: Neo Kim
The System Design Newsletter: 01/10/2025

(explained in 2 mins or less):

  1. Inner join
    It returns rows with matching values in both tables
  2. Full outer join
    It returns all rows when there is a match in either the left or the right table
  3. Full outer exclusive
    It returns all rows from both tables with no match in the other table
  4. Left join
    It returns all rows from the left table and matched rows from the right table
  5. Left exclusive
    It returns rows from the left table with no match in the right table
  6. Right join
    It returns all rows from the right table and matched rows from the left table
  7. Right exclusive
    It returns rows from the right table with no match in the left table
  8. Cross join
    It returns the Cartesian product of both tables; every combination of rows
  9. Self join
    It joins a table with itself to compare rows within the same table

The JOIN clause lets you combine data from tables based on a related column.

What else?



Workspace URL naming pattern decision

Mike's Notes

I was able to decide on the workspace URL naming pattern after conducting some experiments over the last week.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

25/10/2025

Workspace URL naming pattern decision

By: Mike Peters
On a Sandy Beach: 06/10/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Over the last week, I have been experimenting with different URL naming patterns. I had to devise patterns for Pipi to use when it automatically generates SaaS applications with User Interfaces (UI).

Note: The URLs below don't link to anything.

Learning from others

I looked at how common and very popular cloud products use URL naming patterns, including;

  • Google Workspace
  • MuleSoft
  • Odoo
  • Salesforce
  • ServiceNow
  • Zoho

Conclusion

I started with the simplicity of Google and ended with the richness of ServiceNow. The pattern simply needs to be predictable and consistently effective. The URLs after the  i18n codename need to be in the local language, eg French.

Components

The Pipi-generated URLs will be made up of the following parts;

  • User account, eg demo
  • Device/screen specific, eg mobile m , braille b , kiosk k , VR v
  • Platform, eg cloud.ajabbi.com
  • i18n code, eg eng-UK
  • Major version, eg 9
  • Account type, eg e for enterprise
  • Account subtype, eg a for app, s for settings
  • Industry name, eg rail
  • One or more nested industry objects, eg rolling stock
  • CRUD verbs, eg patient-new
  • Multi instances directory, eg email/e/
  • ID etc can be masked as a UUID, eg durmdis7d3kbp
  • Workflow specific, eg page/administer/ui-builder/concept

Pattern examples

  • demo.cloud.ajabbi.com/eng/9/e/a/screen/location/l/adytenm.html
  • demo.m.cloud.ajabbi.com/fra/9/e/a/écran/emplacement/e/adytenm.html

URL masking and pattern configuration

It should be straightforward for a User Account holder to mask these URLs and modify other pattern configurations.

  • m.rail.example.com/en-au/rolling-stock/rolling-stock-new/
  • m.en-au.example.com/rail/rolling-stock/new/
  • en-au.bigrail.com/rolling-stock/r/2945/history/
  • k.en-au.app.bigrail.com/rolling-stock/r/2945/history/

Industry names

Third draft revision of the Pipi 6 industry names used for English i18n URLs. This has been imported into Pipi 9 for testing purposes. The nouns are singular.

  • Agriculture: agriculture/
  • Art: art/
  • Aviation: aviation/
  • Conservation: conservation/
  • Construction: construction/
  • Drainage: drainage/
  • Electricity Supply: electricity-supply/
  • Forestry: forestry/
  • GLAM (Galleries-Libraries-Archives-Museums): glam/
  • Health: health/
  • Horticulture: horticulture/
  • Learning: learning/
  • Port: port/
  • Rail: rail/
  • Research: research/
  • Road: road/
  • Screen (was Film): screen/
  • Sewer: sewer/
  • Transport: transport/
  • Water Supply: water-supply/
  • Website: website/
  • Zoo: zoo/

Next steps

  • Begin creating full-page mockups for community testing.
  • Adjust as necessary

Using free tiers on the cloud

Mike's Notes

A job starting in the next few months. I'm gathering information for now.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

12/10/2025

Using free tiers on the cloud

By: Mike Peters
On a Sandy Beach: 05/10/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

I need to learn how to work with multiple cloud platforms. Many offer a generous free tier for learning and production. Initially, I thought I would do all the available training and just build things.

Then move part of the Ajabbi/Pipi infrastructure to all of these platforms, staying within the free-tier limits.

This means being able to use MSSQL, Postgres, Oracle, MySQL, etc. And being familiar and confident with multiple languages like .NET, PHP, Java, Python, Go, etc

VMs, Kubernetes, Docker, et al.

This is preparation for when paying customers decide to use Pipi as part of their enterprise SaaS, on their platform of choice. At least I will be ready.

Known available free tiers (more to come)

  • Alibaba Cloud
  • AWS
  • Azure
  • Cloudflare
  • Container Hosting Service
  • DigitalOcean
  • Google Cloud
  • Hetzner Cloud
  • IBM Cloud
  • JFrog
  • Linode
  • Netlify
  • OpenShift
  • Oracle Cloud
  • OVHcloud
  • Render
  • Salesforce
  • Tencent Cloud
  • Vercel
  • Wasabi
  • Zeabur

Documenting your data: WordPress case study, pt. 1

Mike's Notes

Another very useful article by Alexey Makhotkin.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Minimal Modelling
  • Home > Handbook > 

Last Updated

04/10/2025

Documenting your data: WordPress case study, pt. 1

By: Alexey Makhotkin
Minimal Modelling: 01/10/2025

I started working with databases around 1996. The idea of this Substack has been brewing for few years already.

Super-short CV: software developer (+database administrator) — team lead — project manager — head of software development (150+ people) — burned out — dinosaur.

240 tables and no documentation: making sense of your database.

A very common question I see on database-related forums goes something like:

“At my new place of work, there is a database with hundreds of tables, barely any documentation, and I need to understand it to do my job: running SQL queries.

[additional complications are usually described]

Any advice on how should I approach this problem?”

You could answer that question on different levels, but I’d like to discuss an approach that is focused on the immediate situation that this person is in. How to organize the company’s data management processes is a bit above our pay grade here.

A problem

Suppose that you’ve recently joined a new company as a data engineer, business analyst, or some such. Basically your job is to create reports of all sorts, building queries, pipelines etc. A very common situation is that there are a lot of tables (say, a few hundreds), and a very limited amount of documentation. Sometimes you have access to people who’ve worked at the company for quite some time, but they are not readily available for advice. Usually there are also several different databases: say, an OLTP database in Postgres, MySQL or Oracle, and a copy of that in some sort of data warehouse, sometimes in many different versions.

How do you start learning what is what in the database? What sort of data is there, how is it stored, how reliable is the data, how clean, etc., etc?

A knee-jerk approach is to document the tables and their columns. This is what’s often considered the data catalog. Unfortunately, if you try this you’ll find that this approach does not work. In a follow-up article we’ll discuss why, but let’s focus on an approach that may have a better chance of working for you.

Case study: WordPress

Let’s use a real-world database as an example: a WordPress database schema. The official description could be found on https://codex.wordpress.org/Database_Description. This page has everything that is traditionally used to document databases:

  • a physical ERD diagram;
  • an overview of tables;
  • a detailed table structure (in a tabular format);

We could also consult a more compact database schema expressed as a sequence of SQL CREATE TABLE statements: https://gist.github.com/squadette/3bafa201a04f1372d69c182f206f8975.

We’re going to use a different approach based on Minimal Modeling (https://minimalmodeling.com/).

We’ll be documenting the database using a four-part catalog in a tabular format:

  • list of anchors;
  • list of attributes;
  • list of links;
  • list of secondary data.

We’ll work incrementally. In the first part we’ll show how to document just a few of each data element: anchors, attributes and links, just enough to illustrate the approach. In the follow-up posts, we’ll build the complete database documentation.

It’s not necessary to build the full design upfront. This helps you deal with large databases: you need to document only the parts that you are directly interested in. The entire data catalog is structured in such a way that you can easily document additional data elements.

Anchors first

We start with anchors (also known as entities). Anchors are nouns, but not every noun is an anchor. To find anchors, we need to look for things that could be added and counted.

Let’s look at the list of tables:

mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)

The most common anchor is probably User (we found it in the wp_users table). It’s easy to confirm that users could indeed be added and counted:

  • We have 100 users in our database.
  • One more user has just registered.

Such sentences sound trivial in simple cases, but would become useful in more complicated cases. Hopefully, later we’ll find an example of such in WordPress.

WordPress is a content management system, and the most common type of content is Post and Comment. Both posts and comments could be added and counted. Let’s add those three into the first part of our Minimal Modeling catalog:

The first column is an anchor name; you choose anchor names according to the business vocabulary. They do not necessarily match table names (table names are often unclear or misleading).

The second column documents ID type; in this case it’s “bigint”, an SQL data type. If you have more interesting IDs you could also provide examples of IDs so that you could better recognize them in data. In most cases, of course, the IDs are pretty opaque: just some integers or UUIDs.

The third table contains an SQL query fragment that returns all the IDs of the corresponding anchor, and nothing else. So if we have ten users, the query would return ten different IDs of those users.

Here we begin to see some interesting details, for example the fact that Comment uses a different naming convention for the ID column than the other two.

Three anchors is enough for the start, now let’s look at some attributes.

Attributes

Let’s document a couple of attributes for each anchor. Attributes contain the actual data: strings, numbers, yes/no values, and so on. Note that attributes cannot contain anchor IDs (this is handled by links, see below).

Let’s look at the definitions of wp_users, wp_posts and wp_comments, and find some simple attributes. If we look at the real data in a test WordPress installation, it’s easy to see which data goes where.

The first column is the attribute name. It combines the name of the anchor and some short readable name of the attribute. You can use this string to refer to the specific attribute in other documentation, or just during the discussion.

Note that the attribute name is only remotely related to the column name where the attribute is stored.

The second column of our table contains the most important piece of documentation: a question. We use questions for every attribute. In casual speech people would often just say something like “Name of the User”, or “Item price”, but we take one step further and provide longer and more unambiguous description. Questions help you to document the semantics of less trivial attributes. Additionally, it helps LLMs to understand what exactly is stored here.

The third column is an example value. Practice shows that even a single representative sample of data immediately help with understanding a piece of data. That’s how you can see, for example, that the login name of the User is clearly machine-readable, or that Comment/posted_at has the granularity of one second.

Column #4 is the physical data type. Here we just use normal SQL data types, as defined in your schema.

Finally, SQL query. It needs to return a dataset with exactly two columns: anchor ID and the attribute value. The queries presented here are simple, but you can also extend them to show how to clean the data. We’ll discuss data quality later.

Links

Links roughly correspond to relationships. Links connect two anchors using a verb. Let’s write down all the links that we have between our three anchors so far:

  • User publishes a Post;
  • User posts a Comment;
  • Post has Comments;

How did we find those links? Because we, as users, understand how WordPress works. To make sense of the database, you should have some understanding of the business. As you explore the database schema and present it as the Minimal Modeling catalog, you’ll get more detailed understanding.

Each link has an associated SQL query. This query must return exactly two columns: an ID of the first anchor and an ID of the second anchor.

Let’s discuss each of the columns in that table. The first column contains names of both anchors and the main verb that connects them. Both anchors must be present in the list of anchors that we have.

In our example the anchors are different, but they could also be the same: for example, “An Employee is a manager of another Employee”.

The second column shows link cardinality. In Minimal Modeling, we use only three options:

  • 1:N;
  • M:N;
  • 1:1.

In column #3 we describe the link in a more verbose, slightly formalized way. We write down TWO sentences, one in each direction. We use the words “only one” and “several”: this helps us to confirm the cardinality of the link (we avoid using word “many”).

For example, “several Posts” means that the Post anchor is on the N-side of cardinality, “only one User” means that User is on the 1-side.

Here all three links are 1:N, but we hope to try and find some M:N and 1:1 links later in our investigation.

Finally, we have a column that contains an SQL query for each link. Note that this query must return clean data: two valid IDs, no NULLs or anything like that.

Taking the first link, “User / publishes / Post”, as an example, here is how its table is defined:

CREATE TABLE `wp_posts` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_author` bigint(20) unsigned NOT NULL DEFAULT ‘0’,
. . . .
);

See that the “post_author” column is defined as NOT NULL, but then it immediately allows using a value of 0 to, apparently, mean that the post has no author. We must make sure that only valid IDs are returned, so we filter out NULLs and other sentinel values (e.g., “WHERE post_author <> 0”).

That’s enough data elements for the first part. We’ll continue assembling the data catalog in the following article.

Tooling

To use this approach, you need to maintain four tables. Here we show anchors, attributes, and links, but there is also secondary data, more on that later.

There is no “official” tooling at the moment, but you can use any spreadsheet-like tool that is convenient. Most probably you want to use a collaborative tool, but in some cases even having private notes about the database is what you need.

You can use Google Docs, like I do as I write this document. You can use Notion, Roam, or Obsidian. You can use any Wiki that has good support for tabular data, or even Markdown.

Early adopters of Minimal Modeling use Grist, and I guess that Airtable or something similar would also work great. You can use Google Sheets too, or Excel.

Process

The idea is that you never try to do big modeling upfront. Instead you start just with a handful of data elements in a shared document, and add new entries as needed.

For example, as you work on some query, you learn about some new tables and columns that are not yet documented. So you document them: do they contain a new anchor? A new attribute? A new link?

Note that sometimes a single database table column can store many different attributes. The most common example here is EAV (Entity-Attribute-Value approach).

Note that the catalog tables could be extended with the extra information that you’re interested in. For example, in many companies it makes sense to keep track which of the attributes contain personally-identifiable information (PII), or other regulated data, such as financial information. You can just add another column in the “attributes” table, and enter the required information.

It takes three pieces of data to describe and anchor, five for the attribute, and four for the link, so adding a new entry should take less than five minutes.

What’s next

That was a short introduction into documenting your database using the Minimal Modeling approach.

In the following posts we’ll continue exploring WordPress database schema. The end goal is to have a complete description, covering every single table and column.

Also, we’ll discuss the Minimal Modeling approach in more detail, as related to understanding your existing database. Particularly, we’ll see how to handle multi-database cases, both for primary data and for secondary (analytical) data, like data warehouses.

Domain Model Templates

Mike's Notes

This is my first attempt to define a Domain Model Template.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook >

Last Updated

03/10/2025

Domain Model Templates

By: Mike Peters
On a Sandy Beach: 03/10/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

An industry application, as defined by Pipi, can be filtered and constrained by a Domain Model Template. This creates a custom model with workflows, properties, and i18n for a specific use. A bit like different Lego models built out of the same bricks.

Examples

The screen industry application includes these templates

  • Feature Film
  • Short Film
  • Documentary
  • Live Broadcast
  • Film Studio

The health industry application consists of these templates

  • Family Doctor
  • Hospital
  • Public Health
  • Allied Health
  • Personal Health

Industry object

For the same Industry application, Domain Model Templates may use different collections of industry objects. The UI control menus can differ. Workspace URLs are not always changed by these templates, but can be.

Pipi digital twin

The underlying industry digital twin, Pipi, captures the entire picture, using a world model, regardless of the specific Domain Model Templates in use.

User Accounts

A User Account using a Domain Model Template sees only part of the whole. The account pays only for the actual usage of that part of the digital twin.

User account types and workspace URLs

Mike's Notes

My notes to make explicit how workspace URLs work with different user account types. I tend to make these sorts of decisions as late as possible, when the correct choice becomes very obvious.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

08/11/2025

User account types and workspace URLs

By: Mike Peters
On a Sandy Beach: 02/10/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

My work this week has been focused on determining the naming pattern for workspace URLs. The pattern can differ by user account type.

User Account Types

  • Agent
  • Developer
  • Enterprise
  • Personal
  • Research
  • SME
  • Temp

Agent Account

  • Always in credit and paid by usage.
  • For Pipi to self-manage.
  • Utilises a swarm of Pipi hosts operating within an ecosystem.
  • i18n English-UK URLs.
  • "a" prefix.
  • Uses agent-tenanted workspaces.
  • Uses raw codename patterns in the workspace URL naming.
  • It is a digital twin.
  • Permanent.

Developer Account

  • Always in credit and paid by usage.
  • For developers to support enterprise accounts.
  • Uses a dedicated Pipi host.
  • i18n URLs available.
  • "d" prefix.
  • Uses sole-tenanted workspaces.
  • Uses selectable patterns in the workspace URL naming.
  • No digital twin. Works with customer digital twins.
  • Permanent.

Enterprise Account

  • Always in credit and paid by usage.
  • For large organisations with huge systems.
  • Uses dedicated Pipi hosts.
  • i18n URLs available.
  • "e" prefix.
  • Uses sole-tenanted workspaces.
  • Uses customised patterns in the workspace URL naming.
  • Dedicated digital twin.
  • Permanent.

Personal Account

  • Free.
  • Everyone who gets a username and password.
  • Shares a common Pipi host.
  • i18n URLs available.
  • "p" prefix.
  • Uses a multi-tenanted workspace.
  • Uses standard patterns in the workspace URL naming.
  • Shared digital twin.
  • Permanent.

Research Account

  • Always in credit and paid by usage.
  • For researchers to train Pipi.
  • Uses a dedicated Pipi host.
  • i18n URLs available.
  • "r" prefix.
  • Uses sole-tenanted workspaces.
  • Uses raw codename patterns in the workspace URL naming.
  • Dedicated digital twin.
  • Permanent.

SME Account

  • Always in credit and paid by plan.
  • For small organisations or businesses that want to use simple apps.
  • Shares a common Pipi host.
  • i18n URLs available.
  • "s" prefix.
  • Uses multi-tenanted workspaces.
  • Uses standard patterns in the workspace URL naming.
  • Shared digital twin.
  • Permanent.

Temp Account

  • Free.
  • For temporary users who need to do something without creating an account.
  • No Pipi host.
  • i18n URLs available.
  • "t" prefix.
  • Uses a multi-tenanted workspace.
  • Uses standard patterns in the workspace URL naming.
  • No digital twin.
  • Temporary.

Workspace URL examples

Mike's Notes

Today, I'm diving deep into the existing configuration settings for industry domain-based applications. They were done for Pipi 6 and 7, which is a while ago. They now need to be edited and migrated into Pipi 9. Work on creating the workspace UI can then begin. Eventually, Pipi 9 will no longer be headless.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

25/10/2025

Workspace URL examples

By: Mike Peters
On a Sandy Beach: 01/10/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

This is a working draft and subject to change as I experiment. I need to test this across multiple diverse industries to ensure it works automatically and reliably.

Note: The URLs below don't link to anything.

General Notes

  • Industry object names can be aliased to conform to industry-specific terms, depending on the parent industry name. Hence, Stock in a Plant Nursery has a different meaning than Rolling Stock in Rail.
  • Applying i18n will change the URLs. However, the underlying ASCI code names remain the same.
  • Unique ASCI code names to avoid namespace collisions.
  • These URLs are for logged-in users.
  • Style Guide: Use plural or singular names? Are they all nouns?
  • Each of these industry names has a corresponding three-letter code. They could also be used for the URLs. eg, cst/ for construction, but not very user-friendly.
  • Ajabbi subdomain name options: workspace, app, cloud, or wsp. I think I will go with "cloud". It is shorter than "workspace". The term workspace can be used as a noun to describe what cloud.ajabbi.com is.

Industry names

Second draft revision of the Pipi 6 industry names used for English i18n URLs. The final revision will be imported into Pipi 9 for testing purposes. The nouns are singular.

  • Agriculture: agriculture/
  • Art: art/
  • Aviation: aviation/
  • Conservation: conservation/
  • Construction: construction/
  • Drainage: drainage/
  • Electricity Supply: electricity-supply/
  • Forestry: forestry/
  • GLAM (Galleries-Libraries-Archives-Museums): glam/
  • Learning: learn/
  • Health: health/
  • Horticulture: horticulture/
  • Port: port/
  • Rail: rail/
  • Research: research/
  • Road: road/
  • Screen (was Film): screen/
  • Sewer: sewer/
  • Transport: transport/
  • Water Supply: water-supply/
  • Website: website/
  • Zoo: zoo/

Industry objects

First draft revision of the Pipi 7 industry names used for URLs. Industry domains can be combined with industry objects, provided that this is allowed by schema constraints. Final revision will be imported into Pipi 9.

  • Task: task/
  • Settings: settings/
  • Person: person/
  • Script: script/
  • Storyboard: storyboard/
  • Shot list: shot/
  • Shooting schedule: schedule/
  • Prop: prop/
  • Location: location/
  • Location: location/l/
  • Set: set/
  • Crew: crew/
  • Wardrobe: wardrobe/
  • Rolling Stock: rolling-stock/
  • Budget: budget/
  • Loan: loan/
  • Mail: email/
  • Mail: email/inbox/
  • Mail: email/inbox/i/
  • Patient: patient/

Default Enterprise "e" deployment examples

The URL pattern is /e/industry name/industry object/

  • demo.cloud.ajabbi.com/eng/9/e/aviation/aircraft/
  • demo.cloud.ajabbi.com/eng/9/e/aviation/airport/
  • demo.cloud.ajabbi.com/eng/9/e/aviation/airspace/
  • demo.cloud.ajabbi.com/eng/9/e/aviation/cargo/
  • demo.cloud.ajabbi.com/eng/9/e/aviation/flight/
  • demo.cloud.ajabbi.com/eng/9/e/aviation/passenger/
  • demo.cloud.ajabbi.com/eng/9/e/glam/collection/
  • demo.cloud.ajabbi.com/eng/9/e/glam/loan/
  • demo.cloud.ajabbi.com/eng/9/e/glam/9/event/
  • demo.cloud.ajabbi.com/eng/9/e/rail/booking/
  • demo.cloud.ajabbi.com/eng/9/e/rail/freight/
  • demo.cloud.ajabbi.com/eng/9/e/rail/rolling-stock/new/
  • demo.cloud.ajabbi.com/eng/9/e/rail/track/
  • demo.cloud.ajabbi.com/eng/9/e/screen/budget/
  • demo.cloud.ajabbi.com/eng/9/e/screen/location/
  • demo.cloud.ajabbi.com/eng/9/e/screen/scritp/
  • demo.cloud.ajabbi.com/eng/9/e/sewer/network/
  • demo.cloud.ajabbi.com/eng/9/e/website/wiki/page-edit/

    Additional examples

    Use more levels if required.

    • demo.cloud.ajabbi.com/eng/9/e/health/email/inbox/
    • demo.cloud.ajabbi.com/eng/9/e/health/email/inbox/i/

    Workspace URL naming pattern

    Mike's Notes

    I'm working out a pattern to use for naming workspace URLs. This is part of the current build roadmap.

    Resources

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    21/11/2025

    Workspace URL naming pattern

    By: Mike Peters
    On a Sandy Beach: 30/09/2025

    Mike is the inventor and architect of Pipi and the founder of Ajabbi.

    Logged-in Ajabbi users will be able to use web-based applications called a workspace. Each application requires a URL that follows a predefined pattern.

    Again, this is a work in progress and is likely to change, especially as it addresses performance, usability, security, and privacy issues.

    Here are examples used by other companies.

    Google Workspace example URLs

    • https://calendar.google.com/calendar/u/0/r/week
    • https://calendar.google.com/calendar/u/0/r/month
    • https://mail.google.com/mail/u/0/#inbox
    • https://mail.google.com/mail/u/0/#sent
    • https://draft.blogger.com/blog/posts/jsdksjdksJK;Sjk;SJDKsjd/
    • https://draft.blogger.com/blog/post/edit/hhddfddfd/
    • https://docs.google.com/document/d/5fd8f5/
    • https://contacts.google.com/directory
    • https://contacts.google.com/person/123456789/
    • https://groups.google.com/all-groups
    • https://groups.google.com/g/ontolog-forum
    • https://groups.google.com/g/ontolog-forum/c/coj8JqR6nzw

    Zoho Office Suite example URLs

    • https://www.zoho.com/mail/
    • https://accounts.zoho.com.au/signin?

    Service Now example URLs

    • <instance>.service-now.com/now/cmdb/relationship-health-dashboard/
    • https://www.servicenow.com/docs/bundle/zurich-healthcare-life-sciences/page/product/healthcare-life-sciences/concept/hcls-cto-care-team-portal.html
    • <instance>.service-now.com/now/servicenow-studio/home
    • https://www.servicenow.com/docs/bundle/zurich-application-development/page/administer/ui-builder/concept/ui-builder-overview.html

    MuleSoft example URLs

    • https://docs.mulesoft.com/exchange/to-describe-an-asset

    Note: The URLs below don't link to anything.

    Ajabbi workspace domain

    Note: workspace. or app. or cloud. or wsp/ ? I have decided on cloud.

    The default naked domain URL is

    • https;//cloud.ajabbi.com/

    The user account code name will be added as a URL before the domain.

    • https;//example.cloud.ajabbi.com/

    Domain redirection enables

    • https://cloud.example.com/

    Ajabbi Workspace proposed available URL patterns

    A lot of customisation will be possible for user accounts.

    • https://cloud.ajabbi.com/eng/9/e/calendar/
    • https://example.cloud.ajabbi.com/eng/9/e/calendar/
    • https://example.com/cloud/eng/9/e/calendar/
    • https://example.com/eng-uk/cloud/9/e/calendar/
    • https://app.example.com/eng-uk/e/calendar/
    • https://calendar.example.com/eng-uk/
    • https://en.example.com/workspace/e/calendar/
    • https://fr.example.com/espace/e/calendrier/

    Workspace application directories

    Each application has directories associated with different tasks.

    Mail

    • inbox/
    • draft/
    • sent/

    Some simple examples using mail.

    • https://cloud.ajabbi.com/eng/9/e/email/inbox/
    • https://cloud.ajabbi.com/eng/9/e/email/draft/12345678/

    Security concerns

    Long, meaningless code will be used to name endpoints similar to those used by Google.

      • https;//cloud.ajabbi.com/eng/9/e/email/draft/hnjsdhtrhxn79snrfusni9c5/

      To do next

      1. Define the code names to use with all the workspace applications
      2. Build some static web-based workspace mockups
      3. Make some examples in other languages and scripts
      4. Share with volunteer testers
      5. Reiterate till people are happy
      6. Build a working demo at
        • https://demo.cloud.ajabbi.com/
      7. Provide a Template Engine template for the Pipi Render Engine to render on demand from the Pipi Deployment Engine.
      8. Automate the deployment of workspaces for logged-in users.