FAQ
Answers to common questions about modelling, generation, DDD, CQRS, Event Sourcing, and SAAScade Cloud.
Product Questions
What is Code Genie?
Code Genie is a digital whiteboarding and code generation tool for visually designing software systems with DDD, EventStorming, CQRS, and Event Sourcing concepts.
Who is it for?
It is for software architects, product managers, developers, domain experts, and teams that need a shared model before generating or implementing software.
Do users need to know deep technical patterns?
No. Users should understand the business meaning of commands, events, aggregates, policies, and read models. Code Genie handles much of the technical implementation detail during generation.
Modelling Questions
Should I start with commands or events?
Start with events when discovering a process. Events are business facts and tend to be easier for mixed teams to agree on. Add commands after the team understands what happened.
How do I know if something is a command or an event?
A command asks the system to do something. An event says something happened. Approve Claim is a command. Claim Approved is an event.
How big should an aggregate be?
Large enough to protect the rules that must be consistent together, but not so large that it becomes a whole department. If unrelated commands pile into one aggregate, look for smaller boundaries.
When should I use a policy?
Use a policy when an event should trigger follow-up behaviour, especially automated behaviour that might otherwise be hidden in implementation.
CRUD Questions
Can Code Genie generate CRUD systems?
Yes. Code Genie can design and generate CRUD-style systems for simple record management. Use CRUD when the system mostly creates, reads, updates, and archives simple records.
Is CRUD bad?
No. CRUD is appropriate for many admin tools and reference data systems. The caution is that CRUD is weak when it hides important business decisions, workflows, rules, and events.
CQRS And Event Sourcing Questions
Do all Code Genie systems use CQRS?
All models benefit from separating commands and queries conceptually. The generated technical depth can vary from simple separation to separate read models and event-fed projections.
Do all systems need Event Sourcing?
No. Use Event Sourcing when the history of business events is valuable. Use simpler persistence for simple CRUD or state-only systems.
Do I need to model snapshots?
No. Snapshots are an implementation optimization. Product and business users should model meaningful events, rules, and read models; Code Genie can handle technical storage choices.
Generation And Hosting Questions
What should be complete before generation?
Commands, events, aggregates, key rules, read models, interfaces, and integration boundaries should be reviewed. Critical hotspots should be resolved or explicitly accepted as risk.
Can I generate only part of a canvas?
Yes. Generating one bounded context or workflow at a time is usually better for large systems.
What does SAAScade Cloud do?
SAAScade Cloud hosts generated systems when teams want managed deployment, environment configuration, and operational support from the SAAScade platform.
Should the canvas be updated after generation?
Yes. Treat the canvas as living documentation and the source of product and architecture intent. Update it when the business model changes.