The set of diagram pieces you can use to create awesome architecture visuals.
The library package is regularly updated. Every time I find a new artifact or draw one myself, I add it because I think you should have it in your arsenal.
📦 What you get: 1 Excalidraw Library file (.excalidrawlib) → ready to drop into excalidraw.com
Using the Toolbox
To give you an idea on what you can create with the Toolbox materials, we're listing some of the educational materials we have done for our courses and blog articles.
User enters a prompt inside the Teams app. The Copilot back-end orchestrator service augment that prompt relying on Microsoft Graph access to organizational resources. The LLM receives the augmented prompt and sends back a relevant response.
This is a system that provides configuration as a service, and it is external to the application. The system contains logic to read and write configuration values from storage. This logic also has exception handling in place and how to deal with empty configuration values.
Propagates a payment transaction across inventory and sales systems. Plus, sends the confirmation email.
The Application Gateway acting as traffic cop in front of a primary and secondary VNet. The App Service Environment for allocating a fixed ip address for the gatekeeper to point to.
Use the messaging system for what it’s good at and let external storage handle the heavy lifting.
You decided to distribute your processing logic. Now, you want to think about data consistency across these services. Publishing a broker message event may fail. That’s where the transactional outbox pattern shine.
The Transfer service depends on the Email service for sending email messages. You add an anti-corruption layer Email ACL that publishes those emails as events into the message broker. The monolithic logic has no awareness of that ACL.
You don’t want to miss a payment. Let the ordering service create the order in a queue and continue serving more orders without blocking the caller.
The staff member updated the database records (6) that have a corresponding cache key stored in the distributed cache. Once data has changed in the database (8), we want to prevent fetching data from the cache thus we invalidate the cache key (9).
The worst thing that would happen is to have many pending requests (pending emails) in the queue that should be eventually processed.
Effectively, the producer becomes the consumer as well. The requesting component places the message in a queue and then periodically polls the response queue to check if the message is processed.
If this isn't a third-party API, we could try to solve this by instantiating another instance of the API, and putting a load balancer in front of the instances.
The pattern dictates that the application is hosted separately from the static content.
Using the Toolbox
We're also listing some of the architecture diagrams created for real projects.
The diagram shows the different components composing our system. A great way to showcase your architecture to concerned audience.
The first diagram any architect should show isn’t a maze of boxes – it’s a simple Use Cases Analysis diagram.
You see from the diagram, no direct access is allowed between Public and Data zones. All traffic must flow through the Application zone, where strict rules apply.
Simplicity works better. We ripped out the entire cache-and-DB lookup system. The code on the app side is trivial (fetch file, parse JSON).
With this asynchronous setup, the bill payment workflow became resilient and scalable.
Build change‑ready software that stands the test of time with Clean Architecture. Combine rich domains with pluggable gateways to protect the core logic and adapt to change with confidence.
Show the communication flow across your components in a fine way. A system without clear architecture boundaries is not really a system.