This is the presentation I gave at µCon London 2017: The Microservices Conference on 7-th November. Baker is an open-source library we developed at ING so solve the problem of building an orchestration API for a long-running process with process and information state, with a resilient and scalable architecture.
33. //for each process instance, bake the recipe
baker.bake(processId);
//notify Baker when events occur
baker.processEvent(processId, new SensoryEvents.IndividualInformationSubmitted(name, address));
baker.processEvent(processId, new SensoryEvents.TermsAndConditionsAccepted());
//retrieve ingredients stored in the accumulated state
assert(baker.getIngredients(processId).get("customerId").equals(customerId));
assert(baker.getIngredients(processId).get("iban").equals(iban));
//retrieve all events that have occurred
Set<String> occurredEvents = new HashSet<>(
baker.getEvents(processId).getEventNameList()
);
33
46. State is taken care of:
4 Cassandra for persistent storage
4 Ingredients encrypted by default
4 State recovered automatically
46
47. Run Baker inside of your API
"Smart endpoints and dumb pipes"
47
48. When failure occurs:
4 Baker retries technical failures with exponential
backoff
4 Works well with idempotent services
4 Deal with functional failure in your recipe
48
49. Baker Capability Matrix:
4 Investigate not one, not two, but all business
processes in your company
4 Where do you see re-use?
4 Map using MoSCoW4
to give importance (M = 10, S =
5, C = 2, W = 1)
4
https://en.wikipedia.org/wiki/MoSCoW_method
49
53. Speed of change matters to anyone building software.
Many engineering teams have identified Microservices as
an important component of this architectural approach to
designing more flexible systems that can meet the needs of
their fast changing businesses. Applying this approach
however, is hard. And ideas and practices are still very
much evolving. To help with that, we've launched muCon - a
conference to learn about emerging technologies and
approaches, share challenges and evolve practices and
ideas.
53
54. Their applications are built on top of microservices. If
there careful enough their application serve bad meals.
If we are building microservices or a monolith or any
type of service in general we are serving business logic
to our clients. So no matter what we can not escape the
architectural discussion.
If we are not careful of how we architect our
applications we end up serving bad meals.
54
55. I love cooking food and for the rest of the talk I'll be using analogies from
there. It's very similar to our industry: long hours, hard work, and
delivering experiences to our customers.
Have you been woken up at 3 o'clock in the morning on a Saturday morning
after a night of partying, having to go to the war room and resolve an
application incident. I've been there. When I remember the cold of the
airconditioners, it still makes me shiver.
If we are building microservices or a monolith or any type of application in
general we are serving business logic to our clients. So no matter what, we
cannot escape the architectural discussion. If we are not careful of how
we architect our applications we end up serving a bad meal to our clients.
55