SlideShare a Scribd company logo
Sharing about Lucid Architecture x Laravel
Content
● About Lucid
● Concept
● Principles
● Benefits
● Demo
● References
● Q&A
About Lucid
Lucid is a software architecture to build scalable Laravel projects. It
incorporates Command Bus and Domain Driven Design at the core, upon
which it builds a stack of directories and classes to organize business logic.
It also derives from SOA (Service Oriented Architecture) the notion of
encapsulating functionality within a service and enriches the concept with
more than the service being a class.
Concept
This architecture is in an amalgamation of best practices, design patterns
and proven methods.
● Command Bus: to dispatch units of work. In Lucid terminology these units will be a
Feature, Job or Operation.
● Domain Driven Design: to organize the units of work by categorizing them according
to the topic they belong to.
● Service Oriented Architecture: to encapsulate and manage functionalities of the
same purpose with their required resources (routes, controllers, views, database
Concept
In a typical MVC application, Lucid will be the bond between the application’s
entry points and the units that do the work, securing code form meandring in
drastic directions:
Concept
Concept
Domains
Provide separation to categorize jobs and
corresponding classes that belong to the
same topic. A domain operates in isolation
from other domains and exposes its
functionalities to features and operations
through Lucid jobs only.
Consider the structure below for an
example on what a domain may look like:
Concept
Domains
Concept
Services
Are directories rich in functionality, used to separate a
Monolith into areas of focus in a multi-purpose application.
Concept
Services
Concept
Features
Represent a human-readable application
feature in a class. It contains the logic that
implements the feature but with the least
amount of detail, by running jobs from
domains and operations at the application
or service level.
Serving the Feature class will be the only
line in a controller’s method (in MVC),
consequently achieving the thinnest form of
controllers.
Concept
Features
Concept
Operations
Their purpose is to increase the
degree of code reusability by piecing
jobs together to provide composite
functionalities from across domains.
Concept
Data
For a scalable set of interconnected data
elements, we’ve created a place for them
in app/Data, because most likely over time
writing the application there could develop
a need for more than Models in data, such
as Repositories, Value Objects, Collections
and more.
Benefits
Organization
● Predictable impact of changes on the system when reviewing code
● Reduced debugging time since we’re dividing our application into isolated
areas of focus (divide and conquer)
● With Monolith, each of our services can have their own versioning system
(e.g. Api service is at v1 while Chat is at v2.3 yet reside) yet reside in the
same codebase
Benefits
Reuse & Replace
By dissecting our application into small building blocks of code - a.k.a units -
we’ve instantly opened the door for a high degree of code sharing across the
application with Data and Domains, as well as replaceability with the least
amount of friction and technical debt.
Boundaries
By setting boundaries you would’ve taken a step towards protecting application
code from growing unbearably large and made it easier for new devs to onboard.
Most importantly, that you’ve reduced technical debt to the minimum so that you
don’t have to pay with bugs and sleepless nights; code doesn’t run on good
intentions nor wishes.
Benefits
Benefits
Multitenancy
When our application scales we’d typically have a bunch of instances of it running
in different locations, at some point we would want to activate certain parts of our
codebase in some areas and shut off others.
Benefits
Multitenancy
Here’s a humble example of running Api,
Back Office and Web App instances of the
same application, which in Lucid
terminology are services that share
functionality through data and domains:
Demo
Calculator Application
References
● https://docs.lucidarch.dev/
● https://github.com/lucidarch/lucid
● https://www.youtube.com/watch?v=wSnM4JkyxPw (The lucid
architecture for building scalable applications - Laracon EU 2016)
Q&A

More Related Content

PDF
Advanced web application architecture - Talk
PPT
Lessons Learned in a Continuously Developing Service-Oriented Architecture
PDF
TYPO3 5.0 The Business Case
PDF
Reactive Microservice Architecture with Groovy and Grails
PDF
XP-Manchester 2013 Software Architecture for Agile Developers Intro
PPT
Agile Software Architecture
PDF
Ten Advices for Architects
PDF
BuildStuff 2024 Demonolithing? Think Again.pdf
Advanced web application architecture - Talk
Lessons Learned in a Continuously Developing Service-Oriented Architecture
TYPO3 5.0 The Business Case
Reactive Microservice Architecture with Groovy and Grails
XP-Manchester 2013 Software Architecture for Agile Developers Intro
Agile Software Architecture
Ten Advices for Architects
BuildStuff 2024 Demonolithing? Think Again.pdf

Similar to Sharing about Lucid Architecture x Laravel (20)

PDF
10 Hinweise für Architekten
PPTX
L02 Architecture
PDF
Viktor Turskyi "Effective NodeJS Application Development"
PPT
Best practices for agile design
PDF
Software Architecture: views and viewpoints
PPTX
The-Evolution-of-Software-From-Mainframes-to-the-Cloud .pptx
PDF
Handout - Demonolithing Think Again (Devoxx GR 2025).pdf
PDF
Deep Dive into the Idea of Software Architecture
PPT
Architecting for Change: An Agile Approach
PPTX
Novelty in Non-Greenfield
PPTX
Software architecture in an agile environment
PPT
Arch factory - Agile Design: Best Practices
PPTX
Cs 1023 lec 2 (week 1) edit 1
PPTX
Cs 1023 lec 2 (week 1) edit 1
PDF
Good project from scratch - from developer's point of view
PDF
Evolving Software Patterns
PPTX
Unit No. II Architecture.pptx Cloud Microservices & Application
PDF
L02 What is Software Architecture?
PDF
Advanced web application architecture Way2Web
KEY
Agile Architecture (MAE slides)
10 Hinweise für Architekten
L02 Architecture
Viktor Turskyi "Effective NodeJS Application Development"
Best practices for agile design
Software Architecture: views and viewpoints
The-Evolution-of-Software-From-Mainframes-to-the-Cloud .pptx
Handout - Demonolithing Think Again (Devoxx GR 2025).pdf
Deep Dive into the Idea of Software Architecture
Architecting for Change: An Agile Approach
Novelty in Non-Greenfield
Software architecture in an agile environment
Arch factory - Agile Design: Best Practices
Cs 1023 lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
Good project from scratch - from developer's point of view
Evolving Software Patterns
Unit No. II Architecture.pptx Cloud Microservices & Application
L02 What is Software Architecture?
Advanced web application architecture Way2Web
Agile Architecture (MAE slides)
Ad

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Empathic Computing: Creating Shared Understanding
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Per capita expenditure prediction using model stacking based on satellite ima...
Empathic Computing: Creating Shared Understanding
A comparative analysis of optical character recognition models for extracting...
Spectroscopy.pptx food analysis technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Assigned Numbers - 2025 - Bluetooth® Document
20250228 LYD VKU AI Blended-Learning.pptx
Ad

Sharing about Lucid Architecture x Laravel

  • 2. Content ● About Lucid ● Concept ● Principles ● Benefits ● Demo ● References ● Q&A
  • 3. About Lucid Lucid is a software architecture to build scalable Laravel projects. It incorporates Command Bus and Domain Driven Design at the core, upon which it builds a stack of directories and classes to organize business logic. It also derives from SOA (Service Oriented Architecture) the notion of encapsulating functionality within a service and enriches the concept with more than the service being a class.
  • 4. Concept This architecture is in an amalgamation of best practices, design patterns and proven methods. ● Command Bus: to dispatch units of work. In Lucid terminology these units will be a Feature, Job or Operation. ● Domain Driven Design: to organize the units of work by categorizing them according to the topic they belong to. ● Service Oriented Architecture: to encapsulate and manage functionalities of the same purpose with their required resources (routes, controllers, views, database
  • 5. Concept In a typical MVC application, Lucid will be the bond between the application’s entry points and the units that do the work, securing code form meandring in drastic directions:
  • 7. Concept Domains Provide separation to categorize jobs and corresponding classes that belong to the same topic. A domain operates in isolation from other domains and exposes its functionalities to features and operations through Lucid jobs only. Consider the structure below for an example on what a domain may look like:
  • 9. Concept Services Are directories rich in functionality, used to separate a Monolith into areas of focus in a multi-purpose application.
  • 11. Concept Features Represent a human-readable application feature in a class. It contains the logic that implements the feature but with the least amount of detail, by running jobs from domains and operations at the application or service level. Serving the Feature class will be the only line in a controller’s method (in MVC), consequently achieving the thinnest form of controllers.
  • 13. Concept Operations Their purpose is to increase the degree of code reusability by piecing jobs together to provide composite functionalities from across domains.
  • 14. Concept Data For a scalable set of interconnected data elements, we’ve created a place for them in app/Data, because most likely over time writing the application there could develop a need for more than Models in data, such as Repositories, Value Objects, Collections and more.
  • 15. Benefits Organization ● Predictable impact of changes on the system when reviewing code ● Reduced debugging time since we’re dividing our application into isolated areas of focus (divide and conquer) ● With Monolith, each of our services can have their own versioning system (e.g. Api service is at v1 while Chat is at v2.3 yet reside) yet reside in the same codebase
  • 16. Benefits Reuse & Replace By dissecting our application into small building blocks of code - a.k.a units - we’ve instantly opened the door for a high degree of code sharing across the application with Data and Domains, as well as replaceability with the least amount of friction and technical debt.
  • 17. Boundaries By setting boundaries you would’ve taken a step towards protecting application code from growing unbearably large and made it easier for new devs to onboard. Most importantly, that you’ve reduced technical debt to the minimum so that you don’t have to pay with bugs and sleepless nights; code doesn’t run on good intentions nor wishes. Benefits
  • 18. Benefits Multitenancy When our application scales we’d typically have a bunch of instances of it running in different locations, at some point we would want to activate certain parts of our codebase in some areas and shut off others.
  • 19. Benefits Multitenancy Here’s a humble example of running Api, Back Office and Web App instances of the same application, which in Lucid terminology are services that share functionality through data and domains:
  • 21. References ● https://docs.lucidarch.dev/ ● https://github.com/lucidarch/lucid ● https://www.youtube.com/watch?v=wSnM4JkyxPw (The lucid architecture for building scalable applications - Laracon EU 2016)
  • 22. Q&A

Editor's Notes

  • #1: Reference document: https://docs.lucidarch.dev/concept/