This workshop focuses on domain driven design and how to achieve it effectively. It also focus on bridging gaps while gathering requirements from business stakeholders using event storming workshops.
A Context Map will visualize your system: cluttered models, too much or not enough communication, dependencies on other systems are just some of the insights you'll gain if your start using them
An Introduction to Domain Driven Design focusing on the concepts of Bounded Context, Strategic & Tactical Design, CQRS, Ubiquitous Language, Hexagonal Architecture, Event Sourcing, Task - based UIs
Software architecture for developers by Simon BrownCodemotion
The agile and software craftsmanship movements are pushing up the quality of the software systems we build, but there’s more we can do because even a small amount of software architecture can prevent many of the problems that projects still face, particularly if the team seems to be more chaotic than they are self-organising. Successful software projects aren’t just about good code and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This session is about that bigger picture, software architecture, technical leadership and the balance with agility.
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
Tonight I presented on Domain Driven Design to the Alt.Net group in Sydney at the invite of Richard Banks.
As a follow up, attached are the slides I used, feel free to distribute and use on the Creative Commons Licence
Domain Driven Design main concepts
This presentation is a summary of the book "Domain Driven Design" from InfoQ.
Here is the link: http://www.infoq.com/minibooks/domain-driven-design-quickly
Présentation sur le Domain-Driven Design par Gérard Dethier (Guardis) aux Geeks Anonymes le 10 novembre 2017.
Vidéo de la conférence : https://youtu.be/OmrtGo68E6M
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
Domain-Driven Design is an approach to modelling business complexity explicitly in your software. This deck of slides runs through the key concepts focusing on both the strategic and tactical aspects of DDD.
DDD Basics session with the Domain-Driven Design Belgium community. We only covered Strategic DDD, and split up the work amongst the five founders of the group:
@yreynhout (Defining Domain-Driven Design)
@JefClaes (Ubiquitous Language)
@ONE75 (Context Mapping)
@ToJans (Selling Domain-Driven Design to the business)
@mathiasverraes (Bounded Contexts and Modelling).
More at http://verraes.net/ or http://twitter.com/mathiasverraes
A Context Map will visualize your system: cluttered models, too much or not enough communication, dependencies on other systems are just some of the insights you'll gain if your start using them
An Introduction to Domain Driven Design focusing on the concepts of Bounded Context, Strategic & Tactical Design, CQRS, Ubiquitous Language, Hexagonal Architecture, Event Sourcing, Task - based UIs
Software architecture for developers by Simon BrownCodemotion
The agile and software craftsmanship movements are pushing up the quality of the software systems we build, but there’s more we can do because even a small amount of software architecture can prevent many of the problems that projects still face, particularly if the team seems to be more chaotic than they are self-organising. Successful software projects aren’t just about good code and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This session is about that bigger picture, software architecture, technical leadership and the balance with agility.
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
Tonight I presented on Domain Driven Design to the Alt.Net group in Sydney at the invite of Richard Banks.
As a follow up, attached are the slides I used, feel free to distribute and use on the Creative Commons Licence
Domain Driven Design main concepts
This presentation is a summary of the book "Domain Driven Design" from InfoQ.
Here is the link: http://www.infoq.com/minibooks/domain-driven-design-quickly
Présentation sur le Domain-Driven Design par Gérard Dethier (Guardis) aux Geeks Anonymes le 10 novembre 2017.
Vidéo de la conférence : https://youtu.be/OmrtGo68E6M
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
Domain-Driven Design is an approach to modelling business complexity explicitly in your software. This deck of slides runs through the key concepts focusing on both the strategic and tactical aspects of DDD.
DDD Basics session with the Domain-Driven Design Belgium community. We only covered Strategic DDD, and split up the work amongst the five founders of the group:
@yreynhout (Defining Domain-Driven Design)
@JefClaes (Ubiquitous Language)
@ONE75 (Context Mapping)
@ToJans (Selling Domain-Driven Design to the business)
@mathiasverraes (Bounded Contexts and Modelling).
More at http://verraes.net/ or http://twitter.com/mathiasverraes
Following on from the success of last year, this annual event for London's architect community will have architectural innovation as a theme this year, and particularly CQRS. At the DDD eXchange we will feature leading thinkers and architects who will share their experience and Eric Evans is the programme lead.
This presentation talks about Domain Driven Design and steps to do domain driven design, identifying Entities, Value Objects, defining Aggregates and bounded context. This can help you if you are planning to understand the overall process of DDD
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016Sebastian Verheughe
Experience talk about how architecture and organization come together to address the challenges we face at FINN.no. How we believe decentralised ownership and decision making can help improve development speed and product quality over time. Where we still see complexity in FINN after we started using micro services. And how we try to use the inverse Conway manoeuvre together with DDD to extract the strategic parts of our legacy code. The talk will also address how we currently address data flows across services, and how we are moving in the direction of using events and data streams.
Slides for my architectural session at the event: Docker From Zero To Hero.
We talked about what kind of expertises are need in order to build a true Microservices Solution; you'll need to understand some of the fundamentals on which Microservices is built upon: SOA, EDA and DDD just to name a few, then you can move to the container world.
Original event link: https://www.eventbrite.it/e/biglietti-docker-from-zero-to-hero-83372825365#
Slides for the session presented at the "Un Actor (Model) per amico - multithreading made easy" DevMarche User group event.
In the talk I introduced many of the techniques and practices the teams I work with use when it comes to design and develop highly concurrent and possibly distributed applications.
I also tried to show how many of the concepts coming from several "sources", like Agile practices, DDD, SOA, Microservices, Actor Model, etc overlap and integrate to reach the goal of modelling a working solution for our customers.
Presentation given at "Software for Domain Experts", Athens, Nov 2016. It is about Software for Domain Experts, Domain Driven Design and Systemic Approach. Its purpose is to show how we can follow the Domain Driven Design approach along with the Systemic Approach in order to produce high quality Software for Domain Experts.
Nina Grantcharova - Approach to Separation of Concerns via Design Patternsiasaglobal
Separation of Concerns aims at managing complexity by establishing a well-organized system where each part adheres to a single and unique purpose while maximizing the system's ability to adapt to change and increasing developers' productivity. The goal of this presentation is to promote the understanding of the principle of Separation of Concerns and to provide a selected set of foundational patterns to aid software architects in the designing of maintainable and extensible systems.
It's easy to say... Microservices! Reality is we need to learn and apply concepts coming from many disciplines like SOA, EDA and DDD just to name a few! Mix them with some ALM and technical processes around Packaging and Deploying... and maybe then you get a true Microservices solution.
Following on from the success of last year, this annual event for London's architect community will have architectural innovation as a theme this year, and particularly CQRS. At the DDD eXchange we will feature leading thinkers and architects who will share their experience and Eric Evans is the programme lead.
Hugtakið hugbúnaðararkítektúr er yfirhlaðið orð og þýðir mismunandi hluti fyrir mismunandi fólk. Við ætlum í þessum fyrirlestri að skilgreina ýmis hugtök tengd arkítektúr til að fá betri skilning á þessu. Við munum einnig skilgreina hvað agile arkítektúr þýðir eða hvað það þýðir ekki. Þá skoðum við monolith arkítektúr sem er hinn hefðbundi arkítektúr sem flestir nota í dag. Vandinn er sá að í dag eru kröfurnar meiri en þessi arkítektúr ræður við og því hafa menn verið að skoða aðrar leiðir eins og lightweight Service Oriented Architecture og hvernig smíða má hugbúnað sem þjónustur eða microapps eða microservice.
Við skoðum einnig lagskiptingu en það er elsta trikkið í bókinni og byggir á deila og drottna aðferðinni.
For a few decades, one of the most common approaches to software design is to first focus on the domain model (application layer), then persistence (data layer) and finally the user interface (presentation layer). But what are the pros and cons of this approach? Are there other alternatives? Are they viable? In this presentation, Sandro will be talking about different design biases and the impact they have. He will then focus on Outside-In Design, explaining how our domain model can emerge and evolve when driven by the needs of external systems or users, avoiding speculation and wasted effort.
https://www.youtube.com/watch?v=rbSDGr-_UwY
This video was recorded at SCLConf 2018, an annual conference for software professionals that care about their craft. Learn more about SCLConf at sc-london.com
Communication Mechanisms, Past, Present & FutureMuhammad Ali
This session focuses on the evaluation of communication between applications, it talks about RPC, RMI, WebServices, XML-RPC, REST and newer technologies like GraphQL & MQTT.
This is an introduction to Architectural Katas, rules for forming team and rules to contribute in team. It also specifies the expected output from this activity.
This workshop focus on DBMS Modelling & Optimisation, specially MySQL Optimisations, Indices, Covering Indices, Difference B/W MyISAM and InnoDB Indices, Partitioning, Replication techniques, Sharding Techniques and much more
This presentation is all about Android Architecture Components, their use cases and how they can decrease development time for android developers. It talks about LiveData, Room (Persistence Layer), Lifecycle and ViewModel & reftrofit.
These slides describe rules for running Architectural Katas, essential for running architectural katas. This was created as part of Software Architecture Meetup January 2019 session.
This presentation talks about Domain Driven Design and CQRS, Architectural Katas, Event Sourcing. It also discussed one Architectural Kata and tried to solve that.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
2. Conway's law
“Any organization that designs a system (defined more broadly here than just
information systems) will inevitably produce a design whose structure is a copy of the
organization's communication structure.”
3. What is domain-driven design
Domain-Driven Design is an approach to the development of complex software in which we:
Focus on core domain
Explore models in a creative collaboration of domain practitioners and software practitioners
Speak a ubiquitous language with in an explicitly bounded context
4. Goal
A domain specific project that needs to leverage multiple realms of expertise specifically
Design and Developer expertise
Domain specific expertise
6. Complications
Most of the times developers speak in terms of Objects, composition, aggregation, inheritance, polymorphism,
pure functions etc.
They talk more about technical solution rather than the problem itself.
At times they don’t understand the underlying complexity and overcommit.
Domain expert don’t know any of these, he has his own jargons regarding the domain.
For example marketing people talking about leads, ads, campaigns, budgeting units etc.
Similarly domain expert in airline talking about crew planning, SAFE, roster planning, FBO, PFA etc.
7. Boehm’s First Law
“Errors are most frequent during the requirements and design activities and are the
more expensive the later they are removed”
8. Solution
Strengthen the communication process and establish a methodology for making those communication more
robust
This is primarily accomplished by developing a UBIQUITOUS LANGUAGE and single model
Make sure your developers speak this ubiquitous language.
Persistent use of the UBIQUITOUS LANGUAGE will force the model's weaknesses into the open
Building a language like this has a clear outcome:
Language and model are strongly interconnected with each other
Any changes to the language will be recognized as changes in the domain model
9. Domain Model
A system of abstraction that describes selected aspects of a domain and can be used to solve problems related
to that domain.
A domain model in not a particular(UML) diagram(unlike Model-Driven Design), it is the idea that diagram is
intended to convey.
Model can be an expression in natural language, code or a diagram.
Model is not a design artifact
Model are the backbone of domain-driven design
The model is distilled knowledge
It is not just the knowledge in a domain expert's head; it is a rigorously organized and selective abstraction of
that knowledge
10. Implementation
Once Domain Model is defined, you can identify different components based on their properties
You can divide your solution into different layers(so called layered architecture, MVP, MVC,VIPER, MVVM etc)
For example following we can break down our solution into following layers
Presentation Layer (UI or ReST/SOAP/XMLRPC)
Application Layer (Define the jobs that software is supposed to do and direct the expressive domain objects to work
out problems.)
Domain Layer(Contains Business Logic)
Infrastructure Layer(Provides generic technical capabilities, like message sending, persistence etc.)
There can be multiple layers with different names however Domain-Driven design only requires domain layer.
11. Entities
An object defined primarily by its identity is called an Entity.
Each entity must have an operational way of establishing its identity with another object
An identifying attribute must be guaranteed to be unique within the system however that system is defined,
even if distributed, even when objects are archived
12. Value Objects
An object that represents a descriptive aspect of the domain with no conceptual identity is called aValue
Object.
The attributes that make up aValue Object should form a conceptual whole
Immutability should also be considered when designingValue Objects
As long as aValue Object is immutable, change management is simple
13. Services
There are important domain operations that can't find a natural home in an Entity orValue Object
A Service is an operation offered as an interface that stands alone in the model, without encapsulating state, as
Entities andValue Objects do.
Services are a common pattern in technical frameworks, but they can also apply in the domain layer.
A good service has following characteristics
The interface is defined in terms of other elements of the domain model
The operation relates to a domain concept that is not a natural part of an Entity orValue Object.
14. Aggregates
An aggregate is a cluster of domain objects that can be treated as a single unit
Aggregates are the basic element of transfer of data storage - you request to load or save whole aggregates.
Transactions should not cross aggregate boundaries.
An aggregate will have one of its component objects be the aggregate root.
Any references from outside the aggregate should only go to the aggregate root.
The root can thus ensure the integrity of the aggregate as a whole.
A delete operation must remove everything within the aggregate boundary at once
When a change to any object within the aggregate boundary is committed, all invariants of the whole aggregate
must be satisfied.When a change to any object within the aggregate boundary is committed, all invariants of
the whole aggregate must be satisfied.
15. Bounded Context
Bounded Context is a central pattern in Domain-Driven Design
DDD deals with large models by dividing them into different Bounded Contexts and being explicit about their
interrelationships
Total unification of the domain model for a large system will not be feasible or cost-effective
So instead DDD divides up a large system into Bounded Contexts, each of which can have a unified model
16. Context Map
An individual Bounded Context still does not provide a global view.The context of other models may still be
vague and in flux
Code reuse between Bounded Context is a hazard to be avoided.
A Context Map is the overlap between project management and software design.
A Context Map is a document which outlines the different Bounded Contexts and the relationships between
them.
The level of detail may vary. What it is important is that everyone working on the project shares and
understands it.
17. Event Storming
The smartest approach to collaboration beyond silo boundaries
Event Storming is a flexible workshop format for collaborative exploration of complex business domains.
Event storming is a rapid group modeling approach to domain-driven design.
Originally created by Alberto Brandolini in 2012 as a quick alternative to precise UML diagramming
Extremely lightweight, and doesn’t require any gadget
The business process is "stormed out" as a series of domain events
Result is a set of sticky notes consists of command, event, aggregate, view, business process, issues and
external system
18. Sysop Squad
An electronics giant needs a new trouble-ticket system for their customer-facing IT consultants (the Sysop
Squad) in their stores nationwide
Requirements: trouble tickets can be entered by either call-center receptionists, store staff or customers
online; tickets route to the appropriate consultant based on location, availability and skill; customers enter
consultant evaluation after service; consultant tracks work performed in customer record(s) for future reference
Users: thousands of customers, hundreds of consultants, hundreds of store staff
19. Sysop Squad
An electronics giant needs a new trouble-ticket system for their customer-facing IT consultants (the Sysop
Squad) in their stores nationwide
Requirements:TroubleTickets can be entered by either call-center Receptionists, StoreStaff or Customers online;
tickets route to the appropriate Consultant based on location, availability and skill; customers enter consultant
evaluation after service; consultant tracks work performed in customer record(s) for future reference
Users: thousands of customers, hundreds of consultants, hundreds of store staff
20. Sysop Squad
An electronics giant needs a new trouble-ticket system for their customer-facing IT consultants (the Sysop
Squad) in their stores nationwide
Requirements:TroubleTickets can be entered by either call-center receptionists, store staff or customers
online; tickets route to the appropriate consultant based on location, availability and skill; customers enter
consultant evaluation after service; consultant tracks work performed in customer record(s) for future
reference
Users: thousands of customers, hundreds of consultants, hundreds of store staff
21. Identifying Entities & Value Objects
Ticket
Receptionist
Store Staff
Customer
Consultant
Consultant Evaluation
Work Log
Entities Value Objects