software-architecture
Hyper-efficient serverless on Kubernetes, powered by WebAssembly.
SpinKube is an open source project that streamlines developing, deploying and operating WebAssembly workloads in Kubernetes - resulting in delivering smaller, more portable applications and incredible compute performance benefits.
Structurizr builds upon "diagrams as code", allowing you to create multiple software architecture diagrams from a single model. There are a number of tools for creating Structurizr compatible workspaces, with the Structurizr DSL being the recommended option for most teams. This Structurizr DSL example creates two diagrams, based upon a single set of elements and relationships.
🚀 A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
Your language isn’t broken, it’s doing floating point math. Computers can only natively store integers, so they need some way of representing decimal numbers. This representation is not perfectly accurate. This is why, more often than not, 0.1 + 0.2 != 0.3.
Related contents:
Techniques and numbers for estimating system's performance from first-principles.
The goal of this project is to collect software, numbers, and techniques to quickly estimate the expected performance of systems from first-principles. For example, how quickly can you read 1 GB of memory? By composing these resources you should be able to answer interesting questions like: how much storage cost should you expect to pay for logging for an application with 100,000 RPS?
Nodezator is a multi-purpose node editor for the Python programming language. It takes your functions and turns them into Python nodes, allowing you to create and execute complex node layouts and even export them back as Python code.
Nodezator enables node-based programming with Python and allows its integration with regular text-based programming in Python, by letting users export their node layouts as plain Python code. This means your workflow is never overly dependent on the app itself. We guarantee your freedom!
Open-source tool that uses simple textual descriptions to draw beautiful UML diagrams.\
PlantUML is a highly versatile tool that facilitates the rapid and straightforward creation of a wide array of diagrams.
Utilizing a simple and intuitive language, users can effortlessly draft various types of diagrams. For a detailed exploration of the language's capabilities and syntax, please refer to the PlantUML Language Reference Guide.
Related contents:
An Architectural Decision (AD) is a justified design choice that addresses a functional or non-functional requirement that is architecturally significant.
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems.
An updated and organized reading list for illustrating the patterns of scalable, reliable, and performant large-scale systems. Concepts are explained in the articles of prominent engineers and credible references. Case studies are taken from battle-tested systems that serve millions to billions of users.
A Periodic Table of System Design Principles.
System design is often taught through solutions specific to particular domains, such as databases, operating systems, or computer architecture, each with its own methods and vocabulary. While this diversity is a strength, it can obscure cross-cutting principles that recur across domains. This paper proposes a preliminary taxonomy of system design principles distilled from several domains in computer systems. The goal is a shared, concise vocabulary that helps students, researchers, and practitioners reason about structure and trade-offs, compare designs across domains, and communicate choices more clearly.
Open Source ArchiMate Modelling. The Open Source modelling toolkit for creating ArchiMate models and sketches. Used by Enterprise Architects everywhere.
Put your architectural rules under test!
PHPArkitect helps you to keep your PHP codebase coherent and solid, by permitting to add some architectural constraint check to your workflow. You can express the constraint that you want to enforce, in simple and readable PHP code, for example:
The C4 model for visualising software architecture: Context, Containers, Components, and Code.
The C4 model was created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It's a way to create maps of your code, at various levels of detail, in the same way you would use something like Google Maps to zoom in and out of an area you are interested in.
A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns.
This is a project of a library, driven by real business requirements. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.
Test and enforce architectural rules in your Laravel applications. Keep your app's architecture clean and consistent!
Laravel Arkitect lets you test and enforce your architectural rules in your Laravel applications, and it's a PHPArkitect wrapper for Laravel. This package helps you to keep your app's architecture clean and consistent.
So every time I am designing something new I find myself either searching Google or opening up a gang of four (GoF) book to aid me. I searched for a bit trying to find a handy-dandy flash card showing class diagrams and purposes for the basic GoF patterns but was unable to locate a good one (for free). So I made my own.If you see any mistakes or improvements please post here and I will update the docs.