Contact me to organize a Practical Workshop for your organization to speed up your delivery thanks to specific hands-on advice.
Great! You started recently a new software project, or you’re planning to do so. You go all-in: Cloud, Kubernetes, Microservices, Event-Driven, Event-Sourcing, CQRS, Full-Reactive… Why not? The Internet is full of articles about these techniques, and they seem to be the recipe for great success. Well…
Those techniques can be the root cause of big project failures when applied incorrectly, or when you don’t really need them: endless technical discussions, unclear benefits, massive complexity for a simple business case, etc. Check this talk I gave in the JOTB19 conference where I went through some of these common pitfalls.
Keep your software simple and focused on the business problem you want to solve. Contact me to prepare a Pragmatic Microservices Workshop around these topics:
- Are microservices a good option for you? You will analyze pros and cons, and learn about all implications: asynchronous communications, transaction boundaries, eventual consistency, etc.
- Preparing the project for a good start. Having a plan to start with microservices is key to avoid failures. We’ll cover the best methods to plan a microservices-based project and be successful in its execution.
- How to dissect a monolith. If you’re not starting from scratch, learn the best ways to split your monolith into microservices without suffering from both worlds.
The new Architect role
These days, almost every organization works Agile. This causes a big struggle in many projects, that suffer from improvised designs and multiple local decisions that don’t seem to have a common goal.
Based on my experience, I can tell you what works and what doesn’t, around multiple topics:
- Decision Making. We’ll see how following a simple process can help you make decisions efficiently, without wasting time in endless discussions.
- Planning the IT Roadmap. I’ll help your organization to focus on an MVP, but you must also build a Vision for your target architecture. We’ll take into account your future needs to avoid taking the wrong directions.
- Practical Software Architecture. Customize your own lightweight process to facilitate meetings about decision-making, design sessions, and architecture evolution.
- Agile and Architecture: how to make it work. Tips and tricks to avoid improvising short-term solutions that can impact your system drastically.
- Collaborative Software Design. Leverage some popular tools and documentation approaches to allow multiple people to contribute to the system design, without putting much time on it.
Besides, I take into account that teams are groups of people, many times with different cultures, and surely with different ambitions. I’ll teach you how to encourage people to keep participating in architecture and design, no matter the background.
Building interfaces for distributed systems
Learn the most common patterns to communicate pieces of a distributed system. I always like to focus first on understanding the challenges you’ll face: distributed processes, orchestration vs. choreography, delta events vs. snapshots, distributed transactions, message idempotency, scalability, resilience, etc.
Once you know the common challenges and their associated patterns, we’ll dive into the tools with a practical workshop where you can learn one or more of these topics:
- Kafka: a practical journey. I’ll show you how to implement different communication patterns, and how to leverage features like Log Compaction, etc. You’ll also learn the basic concepts: topics, consumers, consumer groups, logs, etc. This is a hands-on session, so you will be able to apply all the learned topics right after.
- RabbitMQ: a practical journey. Learn how the features of this message broker can help you: exchange types, queues, filtering and routing, etc. How is it different from Kafka? When to use it?
- Async vs. sync dependencies. What does going async imply? These concepts are the foundations for organizations that want to start implementing asynchronous interfaces the right way.
Get in touch for more information about the Practical Workshops: