22 dépôts
Architectural patterns where an application is built as a single, unified unit.
Distinguishing note: Focuses on the evaluation of monoliths versus microservices.
Explore 22 awesome GitHub repositories matching software engineering & architecture · Monolithic Architectures. Refine with filters or upvote what's useful.
This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac
Details the process of dividing large codebases into independent services to reduce conflicts and accelerate deployment.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
A monolith is a self-contained and independent application. It is built as a single unit and is responsible for not just a particular task, but can perform every step needed to satisfy a business need. ### Advantages Fol
Phabricator is a software development suite consisting of a collection of integrated web applications designed to manage the full software engineering lifecycle. It serves as a project management platform, issue tracking system, and code review tool. The suite provides capabilities for bug tracking and coordination, allowing teams to report and manage software defects and feature requests. It also facilitates peer code review workflows to manage proposed changes before they are merged into a repository. The platform includes tools for project task organization and general software developmen
Employs a monolithic architecture where all application logic and data management reside in a single unified codebase.
This project is a collection of software engineering principles and architectural design patterns designed to minimize the mental effort required to understand and maintain source code. It serves as a guide for implementing clean code methodologies and architectural simplification to reduce the overall cognitive load on developers. The framework emphasizes aligning module boundaries and ubiquitous language with business stakeholders to prevent architectural ripple effects. It advocates for balancing service granularity to avoid the overhead of distributed monoliths and suggests favoring objec
Groups related functionality into isolated modules within a monolith to avoid the complexity of distributed services.
CLRS is an algorithm implementation library and reference providing code solutions for the classic computer science problems and theoretical concepts found in Introduction to Algorithms. It serves as a computer science study guide and a set of textbook exercise solutions used for academic study and the verification of time and space complexity. The project is a multi-language algorithm library, implementing theoretical algorithms across several programming languages to demonstrate cross-language application and behavior. This approach allows for the study of different memory management and sy
Builds independent modules for each data structure and algorithm to facilitate isolated testing and academic study.
Awesome Fenix is an open-source reference project and comprehensive guide that traces the evolution of software architecture from monolithic systems through microservices, service meshes, and serverless patterns. At its core, it provides a working bookstore application implemented in multiple architectural styles, allowing developers to study the trade-offs and migration paths between each approach through runnable code examples. The project distinguishes itself by treating infrastructure as disposable and reproducible, using Docker and Kubernetes to hide distributed complexity while enabling
Evolves the system through monolithic, microservices, service mesh, and serverless stages with runnable code at each step.
Gumroad is a self-hosted e-commerce platform built with Ruby on Rails that enables creators to sell digital products directly to consumers through a customizable web storefront. At its core, it provides a complete digital product storefront with Stripe payment integration for processing transactions securely. The platform is structured as a Rails monolith using service objects to organize business logic, with PostgreSQL powering full-text search for product discovery and Rails migrations managing database schema changes. It handles file delivery through Active Storage backed by Amazon S3, mai
Organises business logic into single-purpose service classes called from controllers, keeping models thin and actions testable.
This project is a comprehensive educational resource and curriculum focused on site reliability engineering, distributed systems, and infrastructure operations. It provides technical guides, a systems engineering course, and instructional manuals designed to teach the principles of managing large-scale computing environments. The curriculum covers high-level architectural design for scalability and resilience, including fault-tolerant infrastructure, high-availability patterns, and microservices decomposition. It emphasizes the practical application of site reliability engineering through the
Instructs on splitting monolithic applications into chunks to balance CPU and memory requirements.
Inertia is a server-driven frontend framework designed to create monolithic single page applications. It acts as a state synchronization protocol and client-side routing bridge, allowing developers to build interactive experiences using modern JavaScript component libraries while keeping routing and controllers on the server. This approach eliminates the need for a separate REST or GraphQL API layer by passing data from server controllers to frontend components as props via JSON payloads. The framework distinguishes itself by utilizing adapter-based integration to link various backend environ
An approach to web development that eliminates the need for a separate REST or GraphQL API layer.
Hanami is a full-stack Ruby web framework and API platform designed for building maintainable applications. It centers on a modular web architecture that organizes software into independent slices to prevent monolithic growth and isolate functional units. The framework implements a clean architecture by decoupling business logic from persistence and request handling. This is achieved through a central dependency injection container for managing object lifetimes and a repository pattern mapper that separates domain entities from the persistence layer. The project further provides a Rack-compa
Organizes the application into independent slices to prevent monolithic growth and isolate functional units.
Il s'agit d'un framework de gestion de modules pour les applications Laravel conçu pour organiser les bases de code monolithiques en composants modulaires indépendants. Il implémente une architecture d'application modulaire qui sépare la logique métier en unités autonomes, chacune avec ses propres répertoires dédiés pour les contrôleurs, modèles et vues. Le projet sert d'outil pour le Domain Driven Design (DDD), permettant aux développeurs de regrouper les fonctionnalités connexes dans des contextes délimités (bounded contexts). Cette approche prend en charge la migration d'applications monolithiques vers des modules plus petits et gérables pour améliorer la maintenabilité et l'évolutivité à long terme. Le framework gère l'organisation du projet via la découverte de modules basée sur les répertoires, le mapping de namespaces personnalisés et le bootstrapping basé sur des fournisseurs de services. Il gère l'état de l'application via un chargement piloté par la configuration et automatise la localisation des ressources en utilisant une structuration de dossiers basée sur des conventions et l'injection dynamique de routes.
Facilitates the process of breaking down a large monolithic Laravel codebase into smaller, loosely coupled modules.
Simple flow library 🖥️🖱️
Organizes nodes into separate modules with independent state and connection graphs to manage complex flows.
Lamp Cloud is a multi-tenant SaaS backend framework built on Java and Spring Cloud that provides a complete foundation for building enterprise-grade administration systems. Its core identity centers on supporting multiple tenant isolation strategies—including database-per-tenant, schema-per-tenant, and shared-table modes—that can be switched without altering business code, alongside a role-based access control system enforced at the gateway layer across all microservices. The framework distinguishes itself through comprehensive tenant lifecycle management tools that allow creating, configurin
Runs the same codebase as either a microservice or a monolithic application to fit different deployment needs.
This project is a pure Python game engine and development framework designed for building interactive games without relying on external binary dependencies. It functions as a template library that provides a collection of pre-built game examples and architectural patterns to assist in learning game development logic. The framework supports a prototyping workflow and educational programming through a system of reference examples. It includes a dispatcher for launching specific or random game modules, allowing for the analysis of different functional capabilities and structural patterns. The s
Implements a dispatcher to launch specific or random game modules from a built-in collection for analysis.
Ce projet est un framework de conception de systèmes distribués et un guide d'architecture. Il fournit des ressources techniques pour concevoir, déployer et coordonner des services réseau indépendants. Le framework établit une méthodologie structurée pour migrer des applications monolithiques vers des services décentralisés en séparant les préoccupations frontend et backend. Il sert de référence pour l'architecture pilotée par les événements, en se concentrant sur le maintien de la cohérence des données à travers les limites du réseau en utilisant l'approvisionnement en événements et les enregistrements de transactions locaux. Le projet couvre un large éventail de capacités, notamment la communication de services distribués, la configuration de la découverte de services et l'implémentation de passerelles API. Il aborde également les stratégies de déploiement pour la haute disponibilité et l'utilisation du courtage de messages asynchrone pour découpler les services.
Provides a structured methodology for decomposing monolithic applications into independent services.
Pebble est une implémentation de référence de firmware pour wearable destinée à la recherche sur les systèmes embarqués et à l'analyse de firmware. Il sert de blueprint technique pour comprendre comment les systèmes d'exploitation de montres connectées sont structurés et exécutés sur du matériel contraint. La base de code se concentre sur le rendu matériel à faible consommation et la gestion des données de pixels et des buffers d'affichage pour minimiser la consommation d'énergie. Il fournit un guide historique pour le développement d'applications de montre et l'étude de l'architecture logicielle des wearables. Le système incorpore une couche d'abstraction matérielle, une image de firmware monolithique et une combinaison d'allocation mémoire statique et de rendu framebuffer direct. L'entrée est gérée via une boucle événementielle qui mappe les interruptions matérielles vers des callbacks d'application. Le code source est fourni via une distribution flat-file et inclut un script automatisé pour restaurer la hiérarchie de répertoire originale.
Combines the kernel and application logic into a single binary blob for flashing onto wearable hardware.
This project is a Go programming language study guide and backend development course. It provides a collection of learning notes and practical examples covering fundamental syntax and core language concepts. The repository functions as a tutorial for building web APIs and network services. It includes implementation guides for the Gin web framework and code demonstrations for creating remote procedure call services using Protocol Buffers. The material covers backend API engineering, including routing, data binding, and error handling. It also includes examples of structured logging and custo
Organizes educational code examples into isolated modules to demonstrate specific Go language features.
DefectDojo is a vulnerability management system and application security orchestration tool. It serves as a centralized platform for importing, deduplicating, and tracking security findings from multiple scanners and tools to manage an organization's overall security posture. The system distinguishes itself by aggregating findings from various security tools into a single report and normalizing that data to prioritize remediation. It provides specific workflows for vulnerability triage and deduplication to reduce noise and redundant manual work across the software development lifecycle. The
Implements a unified monolithic architecture using the Django framework to handle routing, database ORM, and business logic.
Ergo is a distributed actor framework for Go that implements the Erlang distribution protocol, enabling the construction of resilient, concurrent applications that can communicate transparently with Erlang/OTP nodes. At its core, it provides an actor model with isolated lightweight processes, priority-ordered mailboxes, and a meta-process architecture that separates blocking I/O from sequential message handling to prevent actor freezing. The framework includes a Raft-inspired cluster consensus system for leader election and automatic failover, along with OTP-style supervision trees that organi
Ergo splits a single application into separate packages and creates new entry points without changing any application code.
Ce projet est une collection de scripts de programmation Python et de mini-projets éducatifs conçus comme un environnement de développement partagé. Il sert de dépôt de code open source où les développeurs peuvent pratiquer le codage et explorer les concepts de science des données via une implémentation pratique. Le dépôt fonctionne comme une ressource d'apprentissage collaborative axée sur le workflow fork et pull request. Il utilise un système de contrôle de version distribué pour coordonner les contributions de la communauté et les revues par les pairs des scripts Python.
Organizes independent scripts and mini-projects within a single root folder for centralized access.