The Chenile video series
Eight short episodes that follow the same arc as this site: why microservices, separating definition from implementation, service policies, and governing them at the gateway and the last mile. Each episode below includes a full narration script and demo cues, ready to record.
What are microservices actually for?
Reset the conversation: microservices are a means, not a goal. The five properties we really want — and why a modulith counts too.
The hidden tax: duplicated plumbing
Why the tenth service feels worse than the first. Cross-cutting concerns, re-implemented service by service, are the real cost of microservices.
A service is a contract: definition vs. implementation
The core move. Split each service into an api module consumers depend on and a service module nobody depends on — the Dependency Inversion Principle, made physical.
Your first Chenile service (live demo)
Hands-on: generate an api + service pair and a deployable monolith with gen.sh, build it, and call it. The definition/implementation split, made real.
Service policies: interceptors that do one thing
Give the horizontal concerns a home. A service policy is a single-responsibility, configuration-driven, order-agnostic interceptor in the Chenile pipeline.
Where policies live: the gateway and the last mile
Two checkpoints, two strengths. The gateway gives leverage; the last mile gives context. Why serious systems apply policies at both — defence in depth.
One policy, two places: Chenile in action
The payoff. The same interceptor abstraction runs in Chenile's auth gateway and in each service's pipeline, with the service registry choosing placement.
Test once, run everywhere: BDD in Chenile
The same Gherkin feature file as both a fast MockMvc unit test and a full REST Assured integration test. Write the behaviour once; choose where it runs.
Messaging: one interface, many transports
chenile-messaging applies the whole series' move to events — a tiny ChenilePub/ChenileSub interface with MQTT, Kafka, Azure and in-JVM implementations, all feeding the same pipeline.
Configuration management with cconfig
cconfig gives each module its own JSON config, overridable down to a nested path at runtime, resolved per tenant, from pluggable sources behind one client.
Service registry & proxies: client-side interception
Chenile ships its own registry and a proxy framework: call a service through its interface, routed locally or remotely, with a configurable client-side interceptor chain on the way out.
Putting it together: a tour of a governed system
The finale. Walk the layered architecture and the 11 repositories, and recap the five moves that make business logic pure and governance consistent.