Coolblue Behind the Scenes | Pat Hermens - On the shoulders of giants.
Transcript of Coolblue Behind the Scenes | Pat Hermens - On the shoulders of giants.
ON THE SHOULDERS OF GIANTS.Evolving a legacy system using C# micro-services and RabbitMQ
By Pat Hermens
• Pat Hermens
• ~15 years of Microsoft development
• Started with VB6 & MS Access - I know, right?
• Snr. WebAPI Developer at Coolblue for ~1.5 years
ME.
15 YEARS AGO.
Coolblue was getting started:
• 1 pick-up point: Pieter’s house!
• 1 online store: mp3man.nl
• ~1 order a day
Vanessa just getting started.
10 YEARS AGO.
Coolblue was getting established:
• 1 pick-up point
• 12 online stores
• 350 orders a day
Vanessa was being rapidly developed to handle the load
IN 2015.
Coolblue is definitely established:
• 7 physical stores
• 370+ online stores
• 12,000+ orders a day
… and we’re not done yet!
1300%
3000%
3500%
IN 2015.
1,600+ tables 3,800+ procedures 7500%2,800+ triggers
1,150+ screens 1,250+ active users 2400%
VANESSA EVOLVED.Vanessa DuPrix
Vanessa Fixmeister
Vanessa Moneypenny
Vanessa Purchandez
Vanessa Catalovitz
Vanessa Sellswell
Business Restrictions
• Agile
• Reliable
RESTRICTIONS.
Technical restrictions:
() => Testable;
() => Maintainable;
• .NET WPF / UW Applications.
• Continuous Delivery.
• Task-based Workflows.
• Event-based truthfulness.
NEW IDEAS.
• Messaging Framework.
• Allows us to shout any type of message…
• ...for any reason.
RABBITMQ.
Let’s bring the information to us when it’s produced
rather than when we need to consume it.
BACKGROUND JOBS.
2. Message goes on RabbitMQ queues.
3. Message is dequeued and processed by any/all interested consumers.
1. Process completion creates a message.
Long-running tasks need to signal when they are complete.
INTRA-SERVICE COMMUNICATION.
2. Messages go on RabbitMQ queues.
3. Messages are dequeued and processed by other services.
1. Meaningful events create messages.
Growing number of services need to talk to each other about “the truth”
ORACLE.
2. Messages go on RabbitMQ queues.
3. Messages are dequeued and processed by consumers.
1. Triggers in Oracle create messages.
Existing Vanessa processes need to share information with new systems
“What should I do?” vs. “What needs to be done?”
TASK-BASED WORKFLOW.
2. Incoming messages are presented as actionable tasks.
3. Tasks are processed by the (happy, event-driven) users.
1. Listeners pick up appropriate messages.
• RESTful microservices, C# WebApi, background processing jobs?Let’s have a chat! [email protected]
• Message triggers, queues, routing keys & exchanges are your thing? Grab hold of Filipe. [email protected]
• Want to know more about how we’re getting things done? Have a chat with any of the Coolblue’ers hanging around tonight...
WANT TO KNOW MORE.