SlideShare a Scribd company logo
@crichardson
Microservices in Java and
Scala
Chris Richardson
Founder of Eventuate.io
Founder of the original CloudFoundry.com
Author of POJOs in Action
@crichardson
chris@chrisrichardson.net
http://microservices.io
http://eventuate.io
http://plainoldobjects.com
Copyright © 2015. Chris Richardson Consulting, Inc. All rights reserved
@crichardson
About Chris
@crichardson
About Chris
Consultant and
trainer focusing on
microservices
(public class: April 28th, Oakland, CA)
http://www.chrisrichardson.net/
@crichardson
About Chris
Founder of a startup that is creating
a platform that makes it easy for
application developers write
microservices
(http://eventuate.io)
@crichardson
For more information
http://bit.ly/eventsmarch17
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
@crichardson
In 1986…
http://en.wikipedia.org/wiki/Fred_Brooks
@crichardson
Yet 30 years later….
If you __________________
a puppy will die
Therefore
you must _______________
@crichardson
Quiz - fill in the blanks….
mutate state
use monads
use objects
use functions
block a thread
use async.
make a REST call
send a messageuse Spring
use ….
@crichardson
How we make decisions
Decide
using
emotions
Rationalize with
our intellect
http://en.wikipedia.org/wiki/Mahout
@crichardson
The structure of a pattern
=
Great framework for discussing
and thinking about technology
@crichardson
The structure of a pattern
Resulting context
aka the situation
Name
Context
Problem
Related patterns
(conflicting) issues
etc to address
Forces
Solution
@crichardson
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
@crichardson
In theory:
We can build a modular monolith
But in practice:
We build a big ball of mud
Microservices are not a silver
bullet but …
@crichardson
The benefits typically
outweigh the drawbacks
for
large, complex applications
@crichardson
Build and deliver
better software faster
@crichardson
Easily try other technologies
... and fail safely
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
Data management patterns
Database per
Service
Event-driven
architecture
Shared
database
Event
sourcing
Transaction
log tailing
Database
triggers
Application
events
CQRS
Database architecture
Database per Service
Orders Service
Customer
Service
Order
Database
Customer
Database
Sharded SQL
NoSQL DB
@crichardson
Customer management
How to maintain invariants?
Order management
Order Service
placeOrder()
Customer Service
updateCreditLimit()
Customer
creditLimit
...
has ordersbelongs toOrder
total
Invariant:
sum(open order.total) <= customer.creditLimit
?
@crichardson
Event-driven architecture
@crichardson
How atomically update
database and publish an event
Order Service
Order
Database
Message Broker
insert Order
publish
OrderCreatedEvent
dual write problem
?
@crichardson
Reliably generating events
@crichardson
Use event-sourcing
Event table
Aggregate
type
Event
id
Aggregate
id
Event
data
Order 902101 …OrderApproved
Order 903101 …OrderShipped
Event
type
Order 901101 …OrderCreated
@crichardson
Replay events to recreate
state
Order
state
OrderCreated(…)
OrderAccepted(…)
OrderShipped(…)
Events
Periodically snapshot to avoid loading all events
But what about queries?
@crichardson
Command Query Responsibility
Segregation (CQRS)
Command side
Commands
Aggregate
Event Store
Events
Query side
Queries
(Materialized)
View
Events
@crichardson
Query-side design
Event Store
Updater
View Updater
Service
Events
Reader
HTTP GET
Request
View Query
Service
View
Store
e.g.
MongoDB
Neo4J
CloudSearch
update query
Eventuate architecture
Eventuate platform
Multiple flavors of client
frameworks
“Traditional Java” mutable object-oriented domain objects
https://github.com/cer/event-sourcing-examples/tree/master/
java-spring
Functional Scala with immutable domain objects
https://github.com/cer/event-sourcing-using-scala-typeclasses
Hybrid OO/Functional Scala with immutable domain objects
https://github.com/cer/event-sourcing-examples/tree/master/
scala-spring
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
Customer command side
@crichardson
The Customer aggregate
creditLimit
creditReservations : Map<OrderId, Money>
Customer
List<Event> process(CreateCustomerCommand cmd) { … }
List<Event> process(ReserveCreditCommand cmd) { … }
…
void apply(CustomerCreatedEvent anEvent) { … }
void apply(CreditServedEvent anEvent) { … }
…
State
Behavior
@crichardson
Familiar concepts restructured
class Customer {
public void reserveCredit(
orderId : String,
amount : Money) {
// verify
// update state
this.xyz = …
}
public List<Event> process(
ReserveCreditCommand cmd) {
// verify
…
return … new CreditReservedEvent();
}
public void apply(
CreditReservedEvent event) {
// update state
this.xyz = event.xyz
}
@crichardson
Customer command processing
@crichardson
Customer applying events
@crichardson
Creating an order
save() concisely specifies:
1.Creates Order aggregate
2.Processes command
3.Applies events
4.Persists events
@crichardson
Event handling in Customers
1. Load Customer aggregate
2. Processes command
3. Applies events
4. Persists events
Triggers BeanPostProcessor
Durable subscription name
Customer - query side
@crichardson
MongoDB view: customer and
their order history
{
"_id" : "0000014f9a45004b 0a00270000000000",
"_class" : "net.chrisrichardson…..views.orderhistory.CustomerView",
"version" : NumberLong(5),
"orders" : {
"0000014f9a450063 0a00270000000000" : {
"state" : "APPROVED",
"orderId" : "0000014f9a450063 0a00270000000000",
"orderTotal" : {
"amount" : "1234"
}
},
"0000014f9a450063 0a00270000000001" : {
"state" : "REJECTED",
"orderId" : "0000014f9a450063 0a00270000000001",
"orderTotal" : {
"amount" : "3000"
}
}
},
"name" : "Fred",
"creditLimit" : {
"amount" : "2000"
}
}
Denormalized = efficient lookup
@crichardson
Query-side event handler that
updates customer view
@crichardson
Updating and query view using
Spring Data for MongoDB...
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
@crichardson
Functional Customer
aggregate
Customer
creditLimit
creditReservations
…
CustomerAggregate
processCommand(Account, Command) :
Seq[Events]
applyEvent(Account, Event) : Account
Immutable
state Behavior
@crichardson
Aggregate type classes
Used by
Event Store
to
reconstitute
aggregates
Hardwired
@crichardson
Customer Aggregate….
State
Behavior
@crichardson
…command processing…
@crichardson
… applying events
Agenda
Why a pattern language for microservices?
Monolith architecture vs. microservices
Developing microservices with event sourcing and CQRS
Microservices in Java
Microservices in Scala
Example: real-time, collaborative Kanban board application
@crichardson
Kanban board example
@crichardson
Architecture
Create/update boards
and tasks
Change notifications
Materialized
views
Event Store
@crichardson
Demo
Summary
Microservices are not a silver bullet but they are the
best choice for large/complex applications
Use an event-driven microservices architecture
Build services using event sourcing + CQRS
Using a language/framework specific programming
model
@crichardson
@crichardson chris@chrisrichardson.net
http://bit.ly/eventsmarch17
Questions?

More Related Content

What's hot (20)

PDF
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Chris Richardson
 
PDF
A Pattern Language for Microservices (@futurestack)
Chris Richardson
 
PDF
There is no such thing as a microservice! (oracle code nyc)
Chris Richardson
 
PDF
OReilly SACON2018 - Events on the outside, on the inside, and at the core
Chris Richardson
 
PDF
Microservices and Redis #redisconf Keynote
Chris Richardson
 
PDF
Spring Days NYC - A pattern language for microservices
Chris Richardson
 
PDF
Kong Summit 2018 - Microservices: decomposing applications for testability an...
Chris Richardson
 
PDF
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Chris Richardson
 
PDF
SVCC Developing Asynchronous, Message-Driven Microservices
Chris Richardson
 
PDF
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson
 
PDF
Developing functional domain models with event sourcing (oakjug, sfscala)
Chris Richardson
 
PDF
A Pattern Language for Microservices
Chris Richardson
 
PDF
Oracle Code One: Events and commands: developing asynchronous microservices
Chris Richardson
 
PDF
NodeJS: the good parts? A skeptic’s view (jax jax2013)
Chris Richardson
 
PDF
Mucon: Not Just Events: Developing Asynchronous Microservices
Chris Richardson
 
PDF
#JaxLondon keynote: Developing applications with a microservice architecture
Chris Richardson
 
PDF
Building microservices with Scala, functional domain models and Spring Boot
Chris Richardson
 
PDF
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Chris Richardson
 
PDF
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
Chris Richardson
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Chris Richardson
 
A Pattern Language for Microservices (@futurestack)
Chris Richardson
 
There is no such thing as a microservice! (oracle code nyc)
Chris Richardson
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
Chris Richardson
 
Microservices and Redis #redisconf Keynote
Chris Richardson
 
Spring Days NYC - A pattern language for microservices
Chris Richardson
 
Kong Summit 2018 - Microservices: decomposing applications for testability an...
Chris Richardson
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Chris Richardson
 
SVCC Developing Asynchronous, Message-Driven Microservices
Chris Richardson
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson
 
Developing functional domain models with event sourcing (oakjug, sfscala)
Chris Richardson
 
A Pattern Language for Microservices
Chris Richardson
 
Oracle Code One: Events and commands: developing asynchronous microservices
Chris Richardson
 
NodeJS: the good parts? A skeptic’s view (jax jax2013)
Chris Richardson
 
Mucon: Not Just Events: Developing Asynchronous Microservices
Chris Richardson
 
#JaxLondon keynote: Developing applications with a microservice architecture
Chris Richardson
 
Building microservices with Scala, functional domain models and Spring Boot
Chris Richardson
 
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Chris Richardson
 
OReilly SACON London: Potholes in the road from monolithic hell: Microservice...
Chris Richardson
 

Viewers also liked (20)

PDF
A pattern language for microservices (#SFMicroservices)
Chris Richardson
 
PDF
A pattern language for microservices (#gluecon #gluecon2016)
Chris Richardson
 
PDF
Developing microservices with aggregates (devnexus2017)
Chris Richardson
 
PDF
Events on the outside, on the inside and at the core (jaxlondon)
Chris Richardson
 
PDF
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Chris Richardson
 
PDF
Developing functional domain models with event sourcing (sbtb, sbtb2015)
Chris Richardson
 
PDF
Microservices pattern language (microxchg microxchg2016)
Chris Richardson
 
PDF
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Chris Richardson
 
PDF
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Chris Richardson
 
PDF
A pattern language for microservices (melbourne)
Chris Richardson
 
PDF
Everyone's guide to event sourcing and async-messaging
Jason Swartz
 
PDF
Everyone's Guide to States, Events and Async-Messaging for Microservices
Jason Swartz
 
PPTX
“Insulin” for Scala’s Syntactic Diabetes
Tzach Zohar
 
PPTX
Java 8 and beyond, a scala story
ittaiz
 
PDF
Practical Aggregate Programming in Scala
Roberto Casadei
 
PDF
Six years of Scala and counting
Manuel Bernhardt
 
PDF
Scala vs java 8
François Sarradin
 
PDF
Scala in Practice
Francesco Usai
 
PDF
Simple, battle proven microservices strategy
Erez Lotan
 
PDF
Microservices Tutorial Session at JavaOne 2016
Jason Swartz
 
A pattern language for microservices (#SFMicroservices)
Chris Richardson
 
A pattern language for microservices (#gluecon #gluecon2016)
Chris Richardson
 
Developing microservices with aggregates (devnexus2017)
Chris Richardson
 
Events on the outside, on the inside and at the core (jaxlondon)
Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Chris Richardson
 
Developing functional domain models with event sourcing (sbtb, sbtb2015)
Chris Richardson
 
Microservices pattern language (microxchg microxchg2016)
Chris Richardson
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Chris Richardson
 
A pattern language for microservices (melbourne)
Chris Richardson
 
Everyone's guide to event sourcing and async-messaging
Jason Swartz
 
Everyone's Guide to States, Events and Async-Messaging for Microservices
Jason Swartz
 
“Insulin” for Scala’s Syntactic Diabetes
Tzach Zohar
 
Java 8 and beyond, a scala story
ittaiz
 
Practical Aggregate Programming in Scala
Roberto Casadei
 
Six years of Scala and counting
Manuel Bernhardt
 
Scala vs java 8
François Sarradin
 
Scala in Practice
Francesco Usai
 
Simple, battle proven microservices strategy
Erez Lotan
 
Microservices Tutorial Session at JavaOne 2016
Jason Swartz
 
Ad

Similar to Microservices in Java and Scala (sfscala) (19)

PDF
Building microservices with Scala, functional domain models and Spring Boot (...
Chris Richardson
 
PDF
#JaxLondon: Building microservices with Scala, functional domain models and S...
Chris Richardson
 
PDF
Building Microservices with Scala, functional domain models and Spring Boot -...
JAXLondon2014
 
PDF
Building and Deploying Microservices with Event Sourcing, CQRS and Docker
C4Media
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Chris Richardson
 
PDF
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
Docker, Inc.
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Chris Richardson
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Chris Richardson
 
PDF
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Chris Richardson
 
PDF
Events on the outside, on the inside and at the core - Chris Richardson
JAXLondon_Conference
 
PDF
Developing microservices with aggregates (SpringOne platform, #s1p)
Chris Richardson
 
PDF
Solving distributed data management problems in a microservice architecture (...
Chris Richardson
 
PDF
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Chris Richardson
 
PDF
Saturn2017: No such thing as a microservice!
Chris Richardson
 
PPTX
Event Driven Microservices architecture
NikhilBarthwal4
 
PDF
A pattern language for microservices
VMware Tanzu
 
PDF
Code Freeze 2018: There is no such thing as a microservice!
Chris Richardson
 
PDF
Oracle Code Sydney - There is no such thing as a microservice!
Chris Richardson
 
PDF
ES and CQRS workshop
Zeldal Ozdemir
 
Building microservices with Scala, functional domain models and Spring Boot (...
Chris Richardson
 
#JaxLondon: Building microservices with Scala, functional domain models and S...
Chris Richardson
 
Building Microservices with Scala, functional domain models and Spring Boot -...
JAXLondon2014
 
Building and Deploying Microservices with Event Sourcing, CQRS and Docker
C4Media
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Chris Richardson
 
Microservices + Events + Docker = A Perfect Trio by Docker Captain Chris Rich...
Docker, Inc.
 
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Chris Richardson
 
Events on the outside, on the inside and at the core - Chris Richardson
JAXLondon_Conference
 
Developing microservices with aggregates (SpringOne platform, #s1p)
Chris Richardson
 
Solving distributed data management problems in a microservice architecture (...
Chris Richardson
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Chris Richardson
 
Saturn2017: No such thing as a microservice!
Chris Richardson
 
Event Driven Microservices architecture
NikhilBarthwal4
 
A pattern language for microservices
VMware Tanzu
 
Code Freeze 2018: There is no such thing as a microservice!
Chris Richardson
 
Oracle Code Sydney - There is no such thing as a microservice!
Chris Richardson
 
ES and CQRS workshop
Zeldal Ozdemir
 
Ad

More from Chris Richardson (20)

PDF
The microservice architecture: what, why, when and how?
Chris Richardson
 
PDF
More the merrier: a microservices anti-pattern
Chris Richardson
 
PDF
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
Chris Richardson
 
PDF
Dark Energy, Dark Matter and the Microservices Patterns?!
Chris Richardson
 
PDF
Dark energy, dark matter and microservice architecture collaboration patterns
Chris Richardson
 
PDF
Using patterns and pattern languages to make better architectural decisions
Chris Richardson
 
PDF
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
Chris Richardson
 
PDF
Events to the rescue: solving distributed data problems in a microservice arc...
Chris Richardson
 
PDF
A pattern language for microservices - June 2021
Chris Richardson
 
PDF
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
Chris Richardson
 
PDF
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Chris Richardson
 
PDF
Designing loosely coupled services
Chris Richardson
 
PDF
Microservices - an architecture that enables DevOps (T Systems DevOps day)
Chris Richardson
 
PDF
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
Chris Richardson
 
PDF
Decompose your monolith: Six principles for refactoring a monolith to microse...
Chris Richardson
 
PDF
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
Chris Richardson
 
PDF
Overview of the Eventuate Tram Customers and Orders application
Chris Richardson
 
PDF
An overview of the Eventuate Platform
Chris Richardson
 
PDF
#DevNexus202 Decompose your monolith
Chris Richardson
 
PDF
JFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
Chris Richardson
 
The microservice architecture: what, why, when and how?
Chris Richardson
 
More the merrier: a microservices anti-pattern
Chris Richardson
 
YOW London - Considering Migrating a Monolith to Microservices? A Dark Energy...
Chris Richardson
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Chris Richardson
 
Dark energy, dark matter and microservice architecture collaboration patterns
Chris Richardson
 
Using patterns and pattern languages to make better architectural decisions
Chris Richardson
 
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
Chris Richardson
 
Events to the rescue: solving distributed data problems in a microservice arc...
Chris Richardson
 
A pattern language for microservices - June 2021
Chris Richardson
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
Chris Richardson
 
Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing micr...
Chris Richardson
 
Designing loosely coupled services
Chris Richardson
 
Microservices - an architecture that enables DevOps (T Systems DevOps day)
Chris Richardson
 
DDD SoCal: Decompose your monolith: Ten principles for refactoring a monolith...
Chris Richardson
 
Decompose your monolith: Six principles for refactoring a monolith to microse...
Chris Richardson
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
Chris Richardson
 
Overview of the Eventuate Tram Customers and Orders application
Chris Richardson
 
An overview of the Eventuate Platform
Chris Richardson
 
#DevNexus202 Decompose your monolith
Chris Richardson
 
JFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
Chris Richardson
 

Recently uploaded (20)

PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PPTX
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Import Data Form Excel to Tally Services
Tally xperts
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 

Microservices in Java and Scala (sfscala)